PHP学习手册五:declare(ticks=N);和php低级语句的概念

先了解下PHP低级语句的意思:粗略的理解意思就是写的每一条PHP语句都可以看做一条低级语句。可以是简单的以分号结尾的一条语句;或者完整的if/elseif,while,do...while,for,foreach,switch,try...catch等算一个语句;或者{} 括出来的语句块;还有declare块本身也是一条语句。

大概了解了低级语句的意思后来看看declare(ticks=N);的用法,它通常会跟 register_tick_function("function_name") 一起使用。大概作用是:在declare(ticks=N){} 的代码段里,每执行N条语句 就会触发由register_tick_function("function_name") 注册的function_name函数。如:

<?php

function  tick_handler ()
{
    echo  "触发tick函数<br />" ;
}

register_tick_function ( 'tick_handler' );

declare( ticks = 1 ){
    $a = 1; //这是一条低级语句
    $b = 2; //这是一条低级语句
    $c = 3; //这是一条低级语句
}//declare本身也是一条低级语句


?>

上面会输出如下:

ticks设置的是1,所以在declare括起来的代码段里,每执行1条低级语句都会触发由register_tick_function ( 'tick_handler' );注册的函数tick_handler()。一共输出4条。如果设置的ticks=2,那就是每执行2条语句才会触发tick_handler()。这里测试的语句是很简单的3个赋值语句,也可以使用for循环来试下:

<?php

function  tick_handler ()
{
    echo  "触发tick函数<br />" ;
}

register_tick_function ( 'tick_handler' );

declare( ticks = 1 ){
  for($i=0;$i<3;$i++){

  }//每次循环都相当于执行了一条语句
}//declare本身也是一条低级语句


?>

输出结果是:

一个循环4次 加上declare本身,所以输出5次“触发tick函数”。

我测试的都是在declare括起来的代码段里,其实也可以把declare( ticks = 1 );放在第一行位置,不用{}括起来语句,则就是对它下面的所有语句都有效果。另外放在第一行和不放在第一行输出的次数还有点不一样,感兴趣的可以测试下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P P PHP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值