declare
(PHP 4, PHP 5, PHP 7, PHP 8)
  declare 結構用來設定一段程式碼的執行指令。declare
  的語法和其它流程控制結構相似:
  
declare (directive)
    statement
  directive 部分允許設定 declare
  程式碼段的行為。目前只認識三個指令:ticks(更多資訊見下面
  ticks 指令)、
  encoding(更多資訊見下面 encoding 指令)、
 strict_types 指令 (更多資訊見型別聲明頁面
     嚴格型別
   章節)。
 
因為本指令是在檔案編譯時處理的,所以指令只接受字面量的值。 無法使用變數和常量。下面為你演示:
<?php
// 這樣是有效的:
declare(ticks=1);
// 這樣是無效的:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>
  declare 程式碼段中的 statement
  部分將被執行——怎樣執行以及執行中有什麼副作用出現取決於
  directive 中設定的指令。
 
  declare 結構也可用於全域性範圍,影響到其後的所有程式碼(但如果有
  declare 結構的檔案被其它檔案包含,則對包含它的父檔案不起作用)。
  
<?php
// 兩者相等:
// 可以這樣用:
declare(ticks=1) {
    // 這裡寫完整的指令碼
}
// 也可以這樣用:
declare(ticks=1);
// 這裡寫完整的指令碼
?>
Ticks
   Tick(時鐘週期)是一個在 declare 程式碼段中直譯器每執行
   N 條可計時的低階語句就會發生的事件。N
   的值是在 declare 中的 directive 部分用
   ticks=N 來指定的。
  
不是所有語句都可計時。通常條件表達式和參數列達式都不可計時。
在每個 tick 中出現的事件是由 register_tick_function() 來指定的。更多細節見下面的例子。注意每個 tick 中可以出現多個事件。
示例 #1 Tick 的用法示例
<?php
declare(ticks=1);
// 每次 tick 事件都會呼叫該函式
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 事件
}
?>
Encoding
   可以用 encoding 指令來對每段指令碼指定其編碼方式。
   
示例 #2 對指令碼指定編碼方式
<?php
declare(encoding='ISO-8859-1');
// 在這裡寫程式碼
?>
    當和名稱空間結合起來時 declare 的唯一合法語法是
    declare(encoding='...');,其中 ...
    是編碼的值。而 declare(encoding='...') {}
    將在與名稱空間結合時產生解析錯誤。