PHP declare控制符及ticks的例子详解

declare 结构用来设定一段代码的执行指令,它的语法结构如下:

    declare (directive)

        statement

不懂?通俗解释如下:

ticks参数表示运行多少语句调用一次register_tick_function的函数。
register_tick_function函数定义了每个tick事件发生时的处理函数。那么什么是tick事件呢?

tick是一个事件。

tick事件在PHP每执行N条低级语句就发生一次,N由declare语句指定。
可以用register_tick_function()来指定tick事件发生时应该执行的操作。

问题又来了,什么是低级语句呢?它包括:

简单语句:空语句(就一个;号),return, break, continue, throw, goto, global, static, unset, echo,  内置的HTML文本,分号结束的表达式等均算一个语句。
    复合语句:完整的if/elseif, while, do...while, for, foreach, switch, try...catch等算一个语句。
    语句块:{} 括出来的语句块。
    最后特别的:declare块本身也算一个语句(按道理declare块也算是复合语句,但此处特意将其独立出来)。

看一个简单的例子:

 代码如下 复制代码

/**
 * declare
 * @link http://www.111cn.net
 */
function do_tick()
{
        echo "<font color=red>do_tick</font>";
}
 
register_tick_function('do_tick');
 
declare(ticks = 1)
{
        for($i = 1; $i < 5; $i++)
        {
                echo "<font color=blue>{$i}</font><br>";
        }
}

上面这段程序的运行结果:


PHP declare控制符及ticks详细教程对结果解释下:

第一次进入for循环,执行echo后执行第一次do_tick函数;
第一次for循环结束后;执行第二次do_tick函数;
循环四次......;
第五次进行for循环,条件不满足,for循环结束,执行一次do_tick函数;
declare本身也是一条语句,也要执行一次do_tick函数。

从上可以看出,declare和ticks可以用来做调试或性能测试。

时间: 2024-11-08 22:57:51

PHP declare控制符及ticks的例子详解的相关文章

SQL SERVER分区具体例子详解

原文:SQL SERVER分区具体例子详解 在日常工作中,我们会遇到以下的情况,一个表每日数万级的增长,而查询的数据通常是在本月或今年,以前的数据偶尔会用到,但查询和插入的效率越来越慢,用数据库分区会有助于解决这个问题.关于分区的理论知识网上很多我这里就不在累赘,我从一个实际例子出发,看如何将一个已经运行了很长时间的普通表进行分区. 提出问题 需解决问题:有一个数据表数据很大,我们通常的查询是在一个季度中.我们需要将以往年份的数据按不同年份存在文件组里,当年的数据分为4个季度存,如果到了新的一年

Oracle expdp/impdp 用法例子 详解 举例 例子 他的这篇文章没有办法写出来 要这么改

 步骤:   导出端: 建立导出目录. grant create any directory to qbjmes;  create directory backup as '/tmp/backup'; grant read, write on directory backup to public;   导入端:  grant create any directory to qbjmes;  create directory backup as '/tmp/backup'; grant read,

php的declare控制符和ticks教程(附示例)

 declare是PHP的流程控制结构,directive目前支持两个指令,ticks的使用需配合register_tick_function函数使用,看下面的小示例吧 declare 结构用来设定一段代码的执行指令,它的语法结构如下:   代码如下: declare (directive) statement     不懂?通俗解释如下:declare是PHP的流程控制结构,directive目前支持两个指令[ticks和encoding],ticks的使用需配合register_tick_f

php的declare控制符和ticks教程(附示例)_php实例

declare 结构用来设定一段代码的执行指令,它的语法结构如下: 复制代码 代码如下: declare (directive)statement 不懂?通俗解释如下:declare是PHP的流程控制结构,directive目前支持两个指令[ticks和encoding],ticks的使用需配合register_tick_function函数(当然还有unregister_tick_function函数)使用.ticks参数表示运行多少语句调用一次register_tick_function的函

ThinkPHP RBAC官网的例子详解

一直想学习RBAC,又看了官网的例子,又百度,没找到合适的教程.所以就只能自己研究了,就拿官网的例子来说吧 think_access表 作用是看某个组是否有权限访问某个模块下的方法或者访问某个模块,这个表少一个pid字段,自己添加就可以了 think_node表,节点表 作用是把所有需要的模块,模块下的方法都添加进来管理,用这个也可以直接读取成后台的导航 name字段是模块,方法的名称,比如Index模块,index方法等,   pid,这个模块或者方法的父id, level,级别,一般项目名是

分组查询GROUP BY用法例子详解

在SQL中使用GROUP BY来对SELECT的结果进行数据分组,在具体使用GROUP BY之前需要知道一些重要的规定. 1.GROUP BY子句可以包含任意数目的列.也就是说可以在组里再分组,为数据分组提供更细致的控制. 2.如果在GROUP BY子句中指定多个分组,数据将在最后指定的分组上汇总. 3.GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数).如果在SELECT中使用了表达式,则必须在GROUP BY子句中指定相同的表达式.不能使用别名. 4.出了聚集

Zabbix触发器之count使用例子详解

I. count 定义的一段时间内值的数量. 字段:(sec|#num,,,<time_shift>) II. sec,num 1.sec,num (秒,#值)-->(sec|#num, 评估期间以秒为单位或以最新收集的值(按#号开头) 2, :(可选) - 需要的图案(整数项目 - 精确匹配;浮法项目 - 内0.000001匹配) 3,operator (optional)可选的 III. 2.支持的选项(区分大小写) eq 等于 ne不等于 gt 更大 ge 大于或等于 lt 少 勒

php Redis存储Session的例子详解

安装redis服务以及php redis扩展 一:redis安装 Download, extract and compile Redis with: $ wget http://download.redis.io/releases/redis-3.0.4.tar.gz $ tar xzf redis-3.0.4.tar.gz $ cd redis-3.0.4 $ make The binaries that are now compiled are available in the src di

ElasticSearch集群操作例子详解

rest 接口 现在我们已经有一个正常运行的节点(和集群),下一步就是要去理解怎样与其通信.幸运的是,Elasticsearch提供了非常全面和强大的REST API,利用这个REST API你可以同你的集群交互.下面是利用这个API,可以做的几件事情: 1.查你的集群.节点和索引的健康状态和各种统计信息 2.管理你的集群.节点.索引数据和元数据 3.对你的索引进行 CRUD(创建.读取.更新和删除)和搜索操作 4.执行高级的查询操作, 像是分页.排序.过滤.脚本编写(scripting).小平