博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【php学习笔记】ticks篇
阅读量:5889 次
发布时间:2019-06-19

本文共 1276 字,大约阅读时间需要 4 分钟。

1. 什么是ticks

我们来看一下手冊上面对ticks的解释:

A tick is an event that occurs for every N low-level statements executed by the parser within the declare block. The value for N is specified using ticks=N within the declare block's directive section.

总结一下:

  • tick是一个事件
  • tick事件在每运行N条low-level statements就会放生一次,N由declare语句指定
  • 能够用register_tick_function()来指定时间的handler,unregister_tick_function()与之相应
至于什么是low-level statements。在此不做展开,总结来说,low-level statements包含下面几种情况:
(1)简单语句:空语句(一个。号)。return, break, continue, throw, goto, global, static, unset, echo, 内置的HTML文本。分号结束的表达式等均算一个语句。
(2)复合语句:完整的if、elseif, while, do...while, for, foreach, switch, try...catch等算一个语句
(3)语句块:{}大括号算一个语句块
(4)declare本身算一个复合语句

全部的statement, function_declare_statement, class_declare_statement构成了low-level statement.

2. tick的坑

一定要注意的一点是:declare()不是一个函数!!。准确的说,他是说一个语言结构。因此可能会有一些你意想不到的行为。比方说,当你在一个文件其中多次用到declare()时,其解析的原则是:谁在我前面而且理我近期我就用谁,全然无视你的代码逻辑。这里不做展开。一个建议的使用方法是

declare(ticks=10){    for($i = 0; $i < 20; $i++){        print "hello\n";    }}declare(ticks=2){    for($i = 0; $i < 20; $i++){        print "hello\n";    }}
3. tick的应用

说了这么多,我们究竟什么时候会用到tick呢?一般来说,tick能够用作调试,性能測试,实现简单地多任务或者做后台的I/O操作等等。

这边举一个鸟哥提供的范例,用于完毕通信

我们来看一下输出:

我们发现,因为注冊了tick事件的callback,每经过两个statements都会触发tick事件。从而运行了从消息队列其中取消息的操作。这样就模拟了消息的发送和接收的过程。

你可能感兴趣的文章
Linux的lvm2 逻辑卷管理工具
查看>>
Android PopupWindow的使用
查看>>
[转]Linux下的lds链接脚本详解
查看>>
centos 7 配置yum本地源及yum命令使用
查看>>
mysql+mycat实现读写分离
查看>>
http协议特点,web资源,url通用格式
查看>>
学习安卓开发[1] - 程序结构、Activity生命周期及页面通信
查看>>
安装和卸载软件包
查看>>
NGINX介绍及配置
查看>>
Go语言-make陷阱和闭包函数
查看>>
cocos2dx 3.10 网狐经典版PC手机端三网通源码搭建
查看>>
开课啦|四维创智2019企业信息安全免费培训班开班通知
查看>>
socket_ftp下载实例_完善功能
查看>>
外行人都能看得懂的Spring Cloud服务注册与发现,错过了血亏!
查看>>
内部类详解
查看>>
navigationOptions属性介绍
查看>>
开源的CPU芯片和SoC设计即将到来
查看>>
springboot2整合Activiti7
查看>>
不会录音转文字,教你怎么把录音转文字
查看>>
【速学速记】lambda表达式的两种应用场景「面试用到」
查看>>