# `naisi_output_ext_license_error`

生成框架启动前可安全输出的许可错误内容，不依赖项目类。

JSON 格式保持 {"code":code,"resource":{},"error":message}；TEXT 格式为
code:message；HTML 返回完整 HTML5 文档，h1 为 code，h3 为经过实体转义的 message。
code、message 和 type 都必须与声明的 PHP 类型一致；类型不一致不会弱转换，而是抛出 TypeError。

## 函数签名

```php
function naisi_output_ext_license_error(int $code, string $message, int $type = NAISI_LICENSE_ERROR_TYPE_JSON): string
```

## 调用前提

此诊断或许可错误接口不要求许可证明。

## 参数

### `$code`

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

需要判断或转换的业务代码。

### `$message`

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

需要输出的非敏感许可错误信息，必须是实际的 PHP string。任何非字符串值（包括 null、false、整数和可字符串化对象）都不会被弱类型转换，而是直接抛出 TypeError；空字符串允许。

### `$type`

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

字符集、过滤、脱敏或许可错误输出类型，应使用对应的 NAISI_* 常量。

## 返回值

类型：`string`

成功时按 type 返回 JSON、HTML 或文本；type 值无效时返回空字符串。任一参数的 PHP 类型与声明不一致时直接抛出 TypeError，不走业务失败返回值。

## 关联常量

- [`NAISI_LICENSE_ERROR_TYPE_JSON`](/web/developers/naisilib/const#naisi-license-error-type-json) = `0` — JSON 许可错误输出。 返回包含 code、空 resource 和 error 的 JSON 字符串。
- [`NAISI_LICENSE_ERROR_TYPE_HTML`](/web/developers/naisilib/const#naisi-license-error-type-html) = `1` — HTML 许可错误输出。 返回完整 HTML5 文档，h1 显示 code，h3 显示已转义的 message。
- [`NAISI_LICENSE_ERROR_TYPE_TEXT`](/web/developers/naisilib/const#naisi-license-error-type-text) = `2` — 纯文本许可错误输出。 按 code:message 格式返回纯文本。

## 调用示例

当前请求须满足上方调用前提；请检查实际返回值和引用输出，随机结果及数据包内容以运行环境为准。

```php
$code = 51603;
$message = '';
$type = 0;

$result = naisi_output_ext_license_error($code, $message, $type);
var_export($result);
```

## 版本信息

- 自版本：`1.0.6`
- 实现模块：`license`
- 授权类别：`UNRESTRICTED` / `NONE`
- 失败回退：空字符串 `""`
- 文档同步：`2026-10-18`
