php中declare的作用詳解

2021-08-09 03:11:41 字數 1911 閱讀 8940

一般用法是 declare(ticks=n);

拿declare(ticks=1)來說,這句主要作用有兩種:

1、zend引擎每執行1條低階語句就去執行一次 register_tick_function() 註冊的函式。

可以粗略的理解為每執行一句php**(例如:$num=1;)就去執行下已經註冊的tick函式。

乙個用途就是控制某段**執行時間,例如下面的**雖然最後有個死迴圈,但是執行時間不會超過5秒。

執行 php timeout.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<?php

declare(ticks=1);

// 開始時間

$time_start= time();

// 檢查是否已經超時

functioncheck_timeout()秒\n");

}

}

// zend引擎每執行一次低階語句就執行一下check_timeout

register_tick_function('check_timeout');

// 模擬一段耗時的業務邏輯

while(1)

// 模擬一段耗時的業務邏輯,雖然是死迴圈,但是執行時間不會超過$timeout=5秒

while(1)

2、declare(ticks=1);每執行一次低階語句會檢查一次該程序是否有未處理過的訊號,測試**如下:

執行 php signal.php 

然後ctl+c 或者 kill -sigint pid 會導致執行**跳出死迴圈去執行pcntl_signal註冊的函式,效果就是指令碼exit列印「get signal sigint and exi」退出 1

2

3

4

5

6

7

8

9

<?php

declare(ticks=1);

pcntl_signal(sigint,function());

echo"ctl + c or run cmd : kill -sigint ". posix_getpid()."\n";

while(1)

PHP7中標量型別declare的用法詳解

這篇文章主要介紹了php7標量型別declare用法,結合例項形式分析了php7中標量型別declare的功能 特性與相關使用技巧,需要的朋友可以參考下 php7為了提高執行效率,在函式方法中增加了標量型別 布林 浮點 整型 字元 的申明特性,節省了對資料型別的檢測。php7 仍然支援弱型別檢測,即...

SQL中的declare用法

平時寫sql查詢 儲存過程都是憑著感覺來,沒有 過sql的具體語法,一直都是按c 那一套往sql上模仿,前幾天專案中碰到乙個問題引起了我對declare定義變數的作用域的興趣。大家都知道c 中的區域性變數,在if中如果我們定義乙個變數的話他的作用到if結束為止,if外是不識別這個變數的,else裡都...

Dojo中declare和define的區別

先看define。作用是定義乙個模組 module 這個模組可以被require引用,引用了之後就可以使用define裡面的東西。乙個模組想當然,裡面幹什麼事情,不一定全部自己實現。就像人要coding,除了腦子,也不能沒有電腦 鍵盤。因此,define的第乙個引數就是將要用到的其他模組引進來。第二...