常量在指令碼執行期間值不能改變
常量一旦定義就不能被重新定義或者取消定義
常量預設為大小寫敏感。傳統上常量識別符號總是大寫的
用 define() 函式來定義常量,在 php 5.3.0 以後,可以使用 const 關鍵字在類定義之外定義常量。
不能在函式內,迴圈內以及 if 語句之內用 const 來定義常量。
常量只能包含標量資料(boolean,integer,float 和 string)。可以定義 resource 常量,但應盡量避免,因為會造成不可預料的結果。
與變數不同,不能在常量前面加上 $ 符號
<?php
define("$a", "something");
echo $a; // 無效
?>
常量可以不用理會變數的作用域而在任何地方定義和訪問
<?php
define("a", "something");
function fn()
fn(); // something
?>
<?php
define("a", "something");
echo a; // something
?>
看清常量的作用域
<?php
echo a; // a
define("a", "something");
?>
所謂的魔術常量,其實不是常量
共有八個魔術常量,它們的值隨著它們在**中的位置改變而改變
名稱說明
__line__
檔案中的當前行號。
__file__
檔案的完整路徑和檔名。如果用在被包含檔案中,則返回被包含的檔名。自 php 4.0.2 起,__file__ 總是包含乙個絕對路徑(如果是符號連線,則是解析後的絕對路徑),而在此之前的版本有時會包含乙個相對路徑。
__dir__
檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。它等價於 dirname(__file__)。除非是根目錄,否則目錄中名不包括末尾的斜槓。(php 5.3.0中新增)
__function__
函式名稱(php 4.3.0 新加)。自 php 5 起本常量返回該函式被定義時的名字(區分大小寫)。在 php 4 中該值總是小寫字母的。
__class__
類的名稱(php 4.3.0 新加)。自 php 5 起本常量返回該類被定義時的名字(區分大小寫)。在 php 4 中該值總是小寫字母的。類名包括其被宣告的作用區域(例如 foo\bar)。注意自 php 5.4 起 __class__ 對 trait 也起作用。當用在 trait 方法中時,__class__ 是呼叫 trait 方法的類的名字。
__trait__
trait 的名字(php 5.4.0 新加)。自 php 5.4 起此常量返回 trait 被定義時的名字(區分大小寫)。trait 名包括其被宣告的作用區域(例如 foo\bar)。
__method__
類的方法名(php 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
__namespace__
當前命名空間的名稱(區分大小寫)。此常量是在編譯時定義的(php 5.3.0 新增)。
PHP中的常量
php 預先定義了幾個常量,並提供了一種機制在執行時自己定義。常量和變數基本上是一樣的,不同的是 常量必須用define函式定義,常量一旦定義好,就不能被重新定義了。php中預先定義好的常量 file 這個預設常量是php 程式檔名。若引用檔案 include 或require 則在引用檔案內的該常...
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...
php中的常量
要定義常量,可使用define 函式,包括以下兩種形式 define name value,true false define name value 第三個引數預設為false 第乙個引數是乙個字串,代表常量的名稱。第二個引數是常量的值,此值不要求是乙個常量表示式。第三個引數指定常量是否不需要區分大...