PHP中的常量

2021-07-04 22:38:20 字數 1687 閱讀 6097

常量在指令碼執行期間值不能改變

常量一旦定義就不能被重新定義或者取消定義

常量預設為大小寫敏感。傳統上常量識別符號總是大寫的

用 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 第乙個引數是乙個字串,代表常量的名稱。第二個引數是常量的值,此值不要求是乙個常量表示式。第三個引數指定常量是否不需要區分大...