# include_once ## 功能 运行期引入并执行 BT 文件,但同一个真实文件在当前执行上下文内只执行一次。 ## 语法 ```bt include_once(path) include_once path ``` ## 参数 | 参数 | 类型 | 必填 | 默认值 | 说明 | | ------ | ------ | ------ | ------ | ------ | | path | String | 是 | 无 | 要引入的 BT 文件路径。 | ## 返回值 | 类型 | 说明 | | ------ | ------ | | Any/Empty | 首次执行时返回被引入文件的返回值;重复引入同一真实文件时返回 Empty。 | ## 示例 ```bt fs('once-demo.bt').write('counter++') counter = 0 include_once 'once-demo.bt' include_once './once-demo.bt' // 输出:1 echo(counter) ``` ## 注意事项 - 重复判断使用规范化后的真实文件路径,不使用原始字符串路径。 - once 状态只属于当前执行上下文;Web 的每次请求、桌面 `bt.call()` 的每次调用都会重新创建状态。 - include_once 共享文件编译缓存,但不会缓存变量作用域、返回值或执行状态。 - 无括号语法只支持语句形式;需要把返回值赋给变量时请使用 `include_once(path)`。