2011-03-28 145 views
1

是在什麼樣定義PHP - 定義變量的不同方法?

define('SITENAME', "My Site"); 

$sitename = "My Site"; 

哪種方式更好的變量來定義配置變量(如網站名稱/網址等)的區別? 謝謝。

+0

添加到答案,常量具有全局範圍,而變量不默認 – 2011-03-28 22:23:24

回答

5

這是一個constant的定義:

define('SITENAME', "My Site"); 

你不能改變的價值,你不要指它帶有$前綴。一般來說,它與變量完全沒有任何關係。

是一個變量:

$sitename = "My Site"; 

對於那些不希望你的PHP腳本的執行過程中更改值(例如一些配置參數),它可能是更好的來定義常量。此外,常量具有全局範圍(您不能也不需要使它們成爲global)。

另一方面,請記住,您不能迭代一堆常量,因爲您可以迭代一組值。例如,您不能傳遞$config數組並從中讀取多個值,而無法預先知道您感興趣的值。

通常常量用於可能影響整個應用程序的行爲,例如選擇:

define('DEBUG', 1); 

對於其他情況下,變量是更方便,使他們常用的,即使技術上它們的值在應用程序運行期間不變。

0

區別在於「define」函數不是用於定義常量的變量。

一個變量有能力改變數值,但常數通過代碼保持不變。

3

前者是不變的定義,一個變量後者的定義。前者不能在運行期間更改(至少不是在標準安裝中),而後者可以。

因此define可能更適合於配置,因爲這些值在腳本運行時不會改變。