W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
(PHP 4, PHP 5, PHP 7, PHP 8)
declare 結(jié)構(gòu)用來設(shè)定一段代碼的執(zhí)行指令。declare 的語法和其它流程控制結(jié)構(gòu)相似:
declare (directive)
statement
directive 部分允許設(shè)定 declare 代碼段的行為。目前只認識三個指令:ticks(更多信息見下面 ticks 指令)、 encoding(更多信息見下面 encoding 指令)、 strict_types 指令 (更多信息見類型聲明頁面 嚴格類型 章節(jié))。
因為本指令是在文件編譯時處理的,所以指令只接受字面量的值。 無法使用變量和常量。下面為你演示:
<?php
// 這樣是有效的:
declare(ticks=1);
// 這樣是無效的:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>
declare 代碼段中的 statement 部分將被執(zhí)行——怎樣執(zhí)行以及執(zhí)行中有什么副作用出現(xiàn)取決于 directive 中設(shè)定的指令。
declare 結(jié)構(gòu)也可用于全局范圍,影響到其后的所有代碼(但如果有 declare 結(jié)構(gòu)的文件被其它文件包含,則對包含它的父文件不起作用)。
<?php
// 兩者相等:
// 可以這樣用:
declare(ticks=1) {
// 這里寫完整的腳本
}
// 也可以這樣用:
declare(ticks=1);
// 這里寫完整的腳本
?>
Tick(時鐘周期)是一個在 declare 代碼段中解釋器每執(zhí)行 N 條可計時的低級語句就會發(fā)生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 來指定的。
不是所有語句都可計時。通常條件表達式和參數(shù)表達式都不可計時。
在每個 tick 中出現(xiàn)的事件是由 register_tick_function() 來指定的。更多細節(jié)見下面的例子。注意每個 tick 中可以出現(xiàn)多個事件。
示例 #1 Tick 的用法示例
<?php
declare(ticks=1);
// 每次 tick 事件都會調(diào)用該函數(shù)
function tick_handler()
{
echo "tick_handler() called\n";
}
register_tick_function('tick_handler'); // 引起 tick 事件
$a = 1; // 引起 tick 事件
if ($a > 0) {
$a += 2; // 引起 tick 事件
print($a); // 引起 tick 事件
}
?>
參見 register_tick_function() 和 unregister_tick_function()。
可以用 encoding 指令來對每段腳本指定其編碼方式。
示例 #2 對腳本指定編碼方式
<?php
declare(encoding='ISO-8859-1');
// 在這里寫代碼
?>
警告
當和命名空間結(jié)合起來時 declare 的唯一合法語法是 declare(encoding='...');,其中 ... 是編碼的值。而 declare(encoding='...') {} 將在與命名空間結(jié)合時產(chǎn)生解析錯誤。
參見 zend.script_encoding。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: