php的declare命令及用法詳解
php中的declare結(jié)構(gòu)用來設(shè)定一段代碼的執(zhí)行指令
declare用于執(zhí)行3個指令:ticks,encoding,strict_types
作用域declare結(jié)構(gòu)用于全局范圍,影響到其后的所有代碼(但如果有declare結(jié)構(gòu)的文件被其他文件包含,則對包含他的父文件不起作用)
1.ticks
declare(ticks=1) {//代碼}||declare(ticks=1);兩者相等
//作用://解釋器每執(zhí)行N條可計(jì)時的低級語句就會發(fā)生的時間 declare(directive=N) Tick(時鐘周期)//1.每執(zhí)行一條語句就執(zhí)行一次register_tisk_function()注冊的函數(shù)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.每執(zhí)行一次低級語句會檢查一次該進(jìn)程是否有未處理過的信號pcntl_signal(SIGINT,function (){ exit('Get signal SIGINT and exitn');});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
開啟嚴(yán)格模式.默認(rèn)是弱類型校驗(yàn).
declare(strict_types=1);
以下內(nèi)容轉(zhuǎn)自: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;
這里首先定義了兩個函數(shù),然后注冊到系統(tǒng),隨后通過declare定義一個ticks,步長為1,作用是在declare作用域中的代碼每執(zhí)行ticks次步長,就執(zhí)行一次注冊的方法,方法順與注冊的順序一致。
所以上面的執(zhí)行結(jié)果是:
tick_handler() calledtick_handler1() calledtick_handler() calledtick_handler1() called3tick_handler() calledtick_handler1() calledtick_handler() calledtick_handler1() calledtick_handler() calledtick_handler1() calledtick_handler() calledtick_handler1() called
這個方法可以測試執(zhí)行代碼的處理時間。
以上就是php的declare命令及用法詳解的詳細(xì)內(nèi)容,更多關(guān)于php declare用法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. IntelliJ IDEA安裝插件的方法步驟2. php模擬實(shí)現(xiàn)斗地主發(fā)牌3. 理解PHP5中static和const關(guān)鍵字4. spring acegi security 1.0.0 發(fā)布5. vue 使用localstorage實(shí)現(xiàn)面包屑的操作6. MyBatis中的JdbcType映射使用詳解7. Vuex localStorage的具體使用8. Python random庫使用方法及異常處理方案9. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟10. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)

網(wǎng)公網(wǎng)安備