php中的常量

2021-08-11 10:52:35 字數 2546 閱讀 3553

要定義常量,可使用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__   :當前命名空間的名稱(區分大小寫)。

預定義常量

除了魔術常量外,還有其它大量的預定義常量,這些是真正的常量

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);

除此之外,還有大量與php有關的路徑資訊、錯誤資訊等

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...