首页 > php学习 > php中的declare结构
2021
01-30

php中的declare结构

declare结构用来设定一段代码执行指令的行为

可选的行为指令有三个:

encoding="coding_str":为代码指定其编码方式
strict_types=1|0:调用函数传值是否应用严格类型,需要在编译时指定--enable-zend-multibyte,否则declare中的encoding值会被忽略
ticks=N:代码中解释器每执行N条可计时的低级语句就会触发的事件

declare语句的格式有两个:

declare(ticks=1) {
    // 这里写完整的运行代码
}
和
declare(ticks=1);
// 这里写完整的运行代码

传入的指令是在文件编译时处理的,所以指令只接受字面量的值,无法使用变量和常量

// 这样是有效的
declare(ticks=1);

// 这样是无效的:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);

ticks指令

不是所有语句都可计时。通常条件表达式和参数表达式都不可计时。
在每个tick中出现的事件由register_tick_function()来指定由unregister_tick_function()来取消

declare(ticks=1);
// 定义事件函数
function tick_handler(){
    echo "tick_handler() called\n";
}
// 注册事件函数
register_tick_function('tick_handler');
$a = 1;
if ($a > 0) {
    $a += 2;
    print($a);
}

注册事件函数之后的代码等同于
$a = 1;
tick_handler();
if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。