全局扩展

    在Zephir中,扩展全局变量仅限于简单的标量类型,如 int / bool / double / char 等。 此处不允许使用复杂类型,例如字符串/数组/对象/资源。

    您可以通过将以下结构添加到 来启用扩展全局变量:

    1. "<global-name>": {
    2. "type": "<some-valid-type>",
    3. }

    可选的module 键(如果存在)将全局的初始化过程放入模块范围的 生命周期事件中,这意味着它只会在每个PHP进程中设置一次, 而不是为每个请求重新初始化,这是默认值:

    在上面的例子中,allow_some_feature在启动时只设置一次;number_times是在每个请求开始时设置的。

    1. globals_set("allow_some_feature", true);

    如果你想从PHP中改变这些全局变量,一个好的选择是包含一个针对这个的方法:

    不能动态访问扩展全局, 因为 globals_get/globals_set 优化器生成的 c 代码必须在编译时解析:

    1. let myOption = "someOption";