php中的declare结构
qingheluo2021-01-30清河洛712
declare结构用来设定一段代码执行指令的行为可选的行为指令有三个:encoding="coding_str":为代码指定其编码方式需要在编译时指定--enable-zend-multibyte,否则declare中的encoding值会被忽略
strict_types=1|0:调用函数传值是否应用严格类型ticks=N:代码中解释器每执行N条可计时的低级语句就会触发的事件declare语句的格式有两个:declare(ticks=1) {
// 这里写完整的运行代码
}
和
declare(ticks=1);
// 这里写完整的运行代码
传入的指令是在文件编译时处理的,所以指...
declare结构用来设定一段代码执行指令的行为
可选的行为指令有三个:
encoding="coding_str":为代码指定其编码方式
需要在编译时指定--enable-zend-multibyte,否则declare中的encoding值会被忽略
strict_types=1|0:调用函数传值是否应用严格类型
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\";
}
// 注册事件函数
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();