# `naisi_version_is_valid`

验证 1～11 段 ASCII 十进制版本号，并可按整数运算符比较。

不接受空白、后缀或空段，段长不限；逐段比较数值，忽略前导零，缺失尾段按 0。
例如 1.10 > 1.2、01.2 = 1.2、1.0 = 1；不转换为浮点数或固定宽度整数。
授权与 naisi_value_is_valid() 相同：LICENSE / PROOF 和 DATA capability。

## 函数签名

```php
function naisi_version_is_valid(string $version, ?string $compare_version = null, int $operator = 1): bool
```

## 调用前提

应用入口先调用 [naisi_is_ext_license_valid](/web/developers/naisilib/naisi-is-ext-license-valid) 并确认返回 `true`。只验证同一请求内已有的有效 FULL/BASIC 证明；没有证明或证明失效时立即返回失败值，不现场补做完整校验。

授权类别：`LICENSE`；执行模式：`PROOF`。许可不代替登录、租户或权限上下文；身份与数据要求见本页参数及用途说明。

## 参数

### `$version`

- 类型：`string`
- 必填：是
- 默认值：无
- 方向：输入参数。

需要验证的点分隔版本号。

### `$compare_version`

- 类型：`?string`
- 必填：否
- 默认值：`null`
- 方向：输入参数。

null 表示只验证 version 格式并忽略 operator；提供字符串时双方均须格式合法。

### `$operator`

- 类型：`int`
- 必填：否
- 默认值：`1`
- 方向：输入参数。

NAISI_VERSION_OPERATOR_EQ/GT/LT/GTE/LTE（1/2/3/4/5），默认 1；比较时未知值返回 false。

## 返回值

类型：`bool`

验证或条件判断成立时返回 true，否则返回 false。

## 关联常量

- [`NAISI_VERSION_OPERATOR_EQ`](/web/developers/naisilib/const#naisi-version-operator-eq) = `1` — naisi_version_is_valid() 版本比较：等于。
- [`NAISI_VERSION_OPERATOR_GT`](/web/developers/naisilib/const#naisi-version-operator-gt) = `2` — naisi_version_is_valid() 版本比较：大于。
- [`NAISI_VERSION_OPERATOR_LT`](/web/developers/naisilib/const#naisi-version-operator-lt) = `3` — naisi_version_is_valid() 版本比较：小于。
- [`NAISI_VERSION_OPERATOR_GTE`](/web/developers/naisilib/const#naisi-version-operator-gte) = `4` — naisi_version_is_valid() 版本比较：大于等于。
- [`NAISI_VERSION_OPERATOR_LTE`](/web/developers/naisilib/const#naisi-version-operator-lte) = `5` — naisi_version_is_valid() 版本比较：小于等于。

## 调用示例

当前请求须先完成许可验证，以下成功结果以授权通过为前提。

```php
var_dump(naisi_version_is_valid('1.2.3')); // true
var_dump(naisi_version_is_valid('1.10', '1.2', NAISI_VERSION_OPERATOR_GT)); // true
var_dump(naisi_version_is_valid('01.2', '1.2', NAISI_VERSION_OPERATOR_EQ)); // true
var_dump(naisi_version_is_valid('1.0', '1', NAISI_VERSION_OPERATOR_EQ)); // true
```

## 版本信息

- 自版本：`1.0.6`
- 实现模块：`validation`
- 授权类别：`LICENSE` / `PROOF`
- 失败回退：`false`
- 文档同步：`2026-10-18`
