php的declare命令及用法详解
发布:smiling 来源: PHP粉丝网 添加日期:2022-05-04 08:04:12 浏览: 评论:0
declare是用来设定一段代码的执行指令,declare结构用于全局范围,影响到其后的所有代码,今天小编给大家普及php的declare命令及用法知识,感兴趣的朋友一起看看吧。
定义
php中的declare结构用来设定一段代码的执行指令
declare用于执行3个指令:ticks,encoding,strict_types
作用域
declare结构用于全局范围,影响到其后的所有代码。
(但如果有declare结构的文件被其他文件包含,则对包含他的父文件不起作用)。
1.ticks
- declare(ticks=1) {
- //代码
- }
- ||
- declare(ticks=1);
两者相等
作用:
解释器每执行N条可计时的低级语句就会发生的时间 declare(directive=N) Tick(时钟周期)。
1.每执行一条语句就执行一次register_tisk_function()注册的函数。
- declare(ticks=1);
- $time_start = time();
- echo "hello";
- function check_timeout(){
- global $time_start;
- $timeout=5;
- if (time() - $time_start > $timeout){
- exit("超时{$timeout}秒\n");
- }
- }
- register_tick_function('check_timeout');
- $i=0;
- while (1){
- // echo $i++;
- $num =1;
- }
2.每执行一次低级语句会检查一次该进程是否有未处理过的信号
- pcntl_signal(SIGINT,function (){
- exit("Get signal SIGINT and exit\n");
- });
- echo "Ctrl+C or run cmd:kill -SIGINT".posix_getpid()."\n";
- while (1){
- // echo "hello world";
- $num = 1;
- }
2.Encoding
可以使用encoding指令来对每段脚本指定其编码方式
declare(encoding='cp936'); //必须在文件代码第一行
3.strict_types
开启严格模式.默认是弱类型校验.
declare(strict_types=1);
以下内容转自:https://www.cnblogs.com/kudosharry/p/3795356.html
php里的declare用法
- function tick_handler ()
- {
- echo "tick_handler() called<br>" ;
- }
- function tick_handler1 ()
- {
- echo "tick_handler1() called<br>" ;
- }
- register_tick_function ( 'tick_handler' );
- register_tick_function ( 'tick_handler1' );
- declare( ticks = 1 )
- {
- $a = 1 ;
- if ( $a > 0 )
- {
- $a += 2 ;
- print( $a );
- }
- }
- exit;
这里首先定义了两个函数,然后注册到系统,随后通过declare定义一个ticks,步长为1,作用是在declare作用域中的代码每执行ticks次步长,就执行一次注册的方法,方法顺与注册的顺序一致。
所以上面的执行结果是:
- tick_handler() called
- tick_handler1() called
- tick_handler() called
- tick_handler1() called
- 3tick_handler() called
- tick_handler1() called
- tick_handler() called
- tick_handler1() called
- tick_handler() called
- tick_handler1() called
- tick_handler() called
- tick_handler1() called
这个方法可以测试执行代码的处理时间。
Tags: declare
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)