要定義常量,可使用define()函式,包括以下兩種形式:
define("name", value, true|false);
define("name", value); // 第三個引數預設為false
第乙個引數是乙個字串,代表常量的名稱。
第二個引數是常量的值,此值不要求是乙個常量表示式。
第三個引數指定常量是否不需要區分大小寫,設為true則不區分。
注意,乙個常量一旦被定義,就不能再改變或者取消定義。使用常量時,直接引用常量名稱即可,不能使用$符號。而且常量的範圍是全域性的。不用管作用區域就可以在指令碼的任何地方訪問常量(與超全域性變數類似)。
常量只能包含標量資料(boolean,integer,float 和 string)和陣列。可以定義 resource 常量,但應盡量避免,因為會造成不可預料的結果。
常量和(全域性)變數在不同的名字空間中。這意味著例如 true 和 $true 是不同的。
$a = 'vara';
define("x", $a, true);
$a = 'varb';
echo x; // vara
也可以使用 const 關鍵字在類定義之外定義常量,比如:
const name = "ann";
不過,define()方式可以不用理會變數的作用域而在任何地方定義和訪問;而且使用 const 關鍵字定義常量必須處於最頂端的作用區域,因為用此方法是在編譯時定義的。這就意味著不能在函式內,迴圈內以及 if 語句之內用 const 來定義常量。
此外,const定義常量時,必須用常量表示式進行初始化,相反,define()可以使用變數、函式呼叫表示式等。
const a = [1,2,3];
var_dump(a[0]); // int(1)
這面這些常量都是預定義常量,不過值切不是不變的,而是會隨著使用它們的上下文不同而不同。
__line__ :檔案的行號
__file__ :檔案的完整路徑和檔名
__dir__ :檔案所在的目錄
__function__ :函式被定義時的名字(區分大小寫)。
__class__ :類被定義時的名字(區分大小寫)。
__trait__ :trait的名字(區分大小寫)。trait名包括其被宣告的作用區域(例如 foo\bar)。
__method__ :類的方法名。返回該方法被定義時的名字(區分大小寫)。
__namespace__ :當前命名空間的名稱(區分大小寫)。
預定義常量
除了魔術常量外,還有其它大量的預定義常量,這些是真正的常量
除此之外,還有大量與php有關的路徑資訊、錯誤資訊等var_dump(php_version); // string(6) "7.1.11"
var_dump(php_major_version); // int(7)
var_dump(php_minor_version); // int(1)
var_dump(php_release_version); // int(11)
var_dump(php_version_id); // int(70111)
var_dump(php_extra_version); // string(0) ""
var_dump(php_os); // string(5) "winnt"
var_dump(php_eol); // string(2) 當前平台下的行結束符
var_dump(php_int_max);
var_dump(php_int_min);
var_dump(php_int_size);
//var_dump(php_float_dig); // 浮點數可精確到的小數字數
//var_dump(php_float_epsilon); // 可表示的最小正浮點數
//var_dump(php_float_min);
//var_dump(php_float_max);
constant ( string $name )
返回常量的值,如果常量未定義,返回null。
bool defined ( string $name )
檢查乙個常量是否已經定義,注意,只用於常量檢測。如果你要檢查乙個變數是否存在,請使用 isset()。如果你要檢測某個函式是否存在,使用 function_exists()。
array get_defined_constants ([ bool $categorize = false ] )
返回所有常量的關聯陣列,鍵是常量名,值是常量值。返回當前所有已定義的常量名和值。 這包含 define() 函式所建立的,通過const關鍵字定義的,也包含了所有擴充套件所建立的。
引數用於指定是否以二維陣列的形式返回。
PHP中的常量
php 預先定義了幾個常量,並提供了一種機制在執行時自己定義。常量和變數基本上是一樣的,不同的是 常量必須用define函式定義,常量一旦定義好,就不能被重新定義了。php中預先定義好的常量 file 這個預設常量是php 程式檔名。若引用檔案 include 或require 則在引用檔案內的該常...
PHP中的常量
常量在指令碼執行期間值不能改變 常量一旦定義就不能被重新定義或者取消定義 常量預設為大小寫敏感。傳統上常量識別符號總是大寫的 用 define 函式來定義常量,在 php 5.3.0 以後,可以使用 const 關鍵字在類定義之外定義常量。不能在函式內,迴圈內以及 if 語句之內用 const 來定...
php 中的常量
常量和變數有如下不同 define min value 0.0 right works outside of a class definition.define max value 1.0 right works outside of a class definition.const min val...