[TOC]
(PHP 4, PHP 5, PHP 7)
declare 結構用來設定一段代碼的執行指令。declare 的語法和其它流程控制結構相似:
>declare (directive)
> statement
directive 部分允許設定 declare 代碼段的行為。目前只認識兩個指令:ticks(更多信息見下面 ticks 指令)以及 encoding(更多信息見下面encoding 指令)。
>Note: encoding 是 PHP 5.3.0 新增指令。
declare 代碼段中的 statement 部分將被執行——怎樣執行以及執行中有什么副作用出現取決于 directive 中設定的指令。
declare 結構也可用于全局范圍,影響到其后的所有代碼(但如果有 declare 結構的文件被其它文件包含,則對包含它的父文件不起作用)。
~~~
<?php
// these are the same:
// you can use this:
declare(ticks=1) {
// entire script here
}
// or you can use this:
declare(ticks=1);
// entire script here
?>
~~~
### Ticks
Tick(時鐘周期)是一個在 declare 代碼段中解釋器每執行 N 條可計時的低級語句就會發生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 來指定的。
不是所有語句都可計時。通常條件表達式和參數表達式都不可計時。
在每個 tick 中出現的事件是由 register_tick_function() 來指定的。更多細節見下面的例子。注意每個 tick 中可以出現多個事件。
## Tick 的用法示例
~~~
<?php
declare(ticks=1);
// A function called on each tick event
function tick_handler()
{
echo "tick_handler() called\n";
}
register_tick_function('tick_handler');
$a = 1;
if ($a > 0) {
$a += 2;
print($a);
}
?>
~~~
## Ticks 的用法示例
~~~
<?php
function tick_handler()
{
echo "tick_handler() called\n";
}
$a = 1;
tick_handler();
if ($a > 0) {
$a += 2;
tick_handler();
print($a);
tick_handler();
}
tick_handler();
?>
~~~
參見 register_tick_function() 和 unregister_tick_function()。
Encoding
可以用 encoding 指令來對每段腳本指定其編碼方式。
## 對腳本指定編碼方式
~~~
<?php
declare(encoding='ISO-8859-1');
// code here
?>
~~~
### Caution
當和命名空間結合起來時 declare 的唯一合法語法是 declare(encoding='...');,其中 ... 是編碼的值。而 declare(encoding='...') {} 將在與命名空間結合時產生解析錯誤。
在 PHP 5.3 中除非在編譯時指定了 --enable-zend-multibyte,否則 declare 中的 encoding 值會被忽略。
注意除非用 phpinfo(),否則 PHP 不會顯示出是否在編譯時指定了 --enable-zend-multibyte。
參見 zend.script_encoding。
- 入門指引
- 簡介
- PHP是什么
- PHP能做什么
- 簡明教程
- 學PHP需要什么
- 我的第一個PHP頁面
- 實用的PHP腳步
- PHP是如何處理表單的
- 在新版本的PHP如何實用舊的PHP代碼
- 下一步需要做什么
- PHP語言參考
- PHP基本語法
- PHP標記
- PHP多進程管理-pcntl_fork
- PHP文件上傳易犯錯誤
- PHP從HTML中分離
- PHP的指令分隔符
- PHP序列化serialize
- PHP類常量
- PHP Traits
- 從 HTML 中分離
- 注釋
- PHP數據類型
- PHP支持的類型簡介
- 布爾類型(Boolean)就是易經知識
- 整型(integer)即整數
- 浮點型(float)
- 字符串(string)
- 數組(Array)
- 對象(object)一定要搞
- 資源類型(resource)
- PHP安裝與環境配置
- 安裝前需要考慮的事項
- Unix系統下安裝PHP
- Unix 系統下安裝 Apache 1.3.x
- Unix 系統下安裝 Apache 2.x
- Unix 系統下安裝 Nginx 1.4.x
- Unix 平臺安裝 Lighttpd 1.4
- Sun Solaris 上的 Sun、iPlanet 和 Netscape 服務器
- CGI 命令行設置
- 針對 HP-UX 平臺的安裝提示
- 在 OpenBSD 系統下的安裝PHP
- Debian GNU/Linux 安裝說明
- 在Mac OS X 系統下安裝PHP
- 使用軟件包
- 使用內置的 PHP
- Windows 系統下的安裝
- 云計算平臺上的安裝
- Microsoft Azure
- 在亞馬遜(Amazon EC2)安裝PHP
- PHP語法參考
- 類型
- NULL
- Callback 回調類型
- 本文檔中使用的偽類型與變量
- 類型轉換的判別
- PHP 類型比較表
- 常量和變量
- 語法基礎
- 預定義變量
- 變量范圍
- 可變變量
- 外部變量
- 常量
- 語法
- 魔術常量
- PHP表達式&運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- continue
- switch
- declare
- return
- require
- include
- require_once