章 8.常數

PHP 自己提供了一些常數, 也允許程式執行時另外再定義各種常數。常數和變數很相似, 它們之間只有兩個分別: 首先常必須用 define() 函數來定義, 另外就是一旦定義後常數的值不可改變。

系統內預先定義的常數包括:

__FILE__

儲存了目前正被執行的文件的名字。 如果用在被 include() 或 require() 的文件之中, 則儲存了母文件的名字而非被 include() 或 reuqire() 文件的名字。

__LINE__

現在正在被分析/解析的指令行。 如果指令是在被 include() 或 require() 的文件中, 則儲存指令在該子文件中的行號。

PHP_VERSION

以文句的型態儲存了現時 PHP 的版本。 例如 '3.0.8-dev'.

PHP_OS

運行 PHP 的作業系統, 如 'Linux'.

TRUE

代表邏輯值真/是。

FALSE

代表邏輯值假/非。

E_ERROR

代表出現了並非解析上的錯誤並引致程式無法繼續執行下去。

E_WARNING

代表出現了警兆但 PHP 會繼續執行程式。 這樣的警兆可用程式中捕捉。類似的例子如 ereg() 中表達式弄錯了。

E_PARSE

解析器在分析指令行時發現了錯誤, 在這情況下無法回復程式的執行。

E_NOTICE

代表有些事不對勁, 可能是發生了錯誤也可能不是。 這類問題的例子有: 用關聯字索引取用陣列時沒有把關聯字用引號括起來、 沒有指定變數的取用變數•••

E_ALL

??

這些由 E_ 打頭的常數通常是和 error_reporting()函數配合用來調整 error reporting level , 就是說調設有哪些錯誤會被處理, 有哪些會被忽略。

如要定義自己的常數, 請用 define() 函數。

留心這都是常數而不是 C 風格的巨集: 常數只能儲存合法的數據。

示範 8-1.設定 常數

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?>

示範 8-2.__FILE__ 和 __LINE__ 的用法

<?php
function report_error($file, $line, $message) {
    echo "An error occured in $file on line $line: $message.";
}

report_error(__FILE__,__LINE__, "Something went wrong!");
?>