是在什麼樣定義PHP - 定義變量的不同方法?
define('SITENAME', "My Site");
和
$sitename = "My Site";
哪種方式更好的變量來定義配置變量(如網站名稱/網址等)的區別? 謝謝。
是在什麼樣定義PHP - 定義變量的不同方法?
define('SITENAME', "My Site");
和
$sitename = "My Site";
哪種方式更好的變量來定義配置變量(如網站名稱/網址等)的區別? 謝謝。
這是一個constant的定義:
define('SITENAME', "My Site");
你不能改變的價值,你不要指它帶有$
前綴。一般來說,它與變量完全沒有任何關係。
這是一個變量:
$sitename = "My Site";
對於那些不希望你的PHP腳本的執行過程中更改值(例如一些配置參數),它可能是更好的來定義常量。此外,常量具有全局範圍(您不能也不需要使它們成爲global
)。
另一方面,請記住,您不能迭代一堆常量,因爲您可以迭代一組值。例如,您不能傳遞$config
數組並從中讀取多個值,而無法預先知道您感興趣的值。
通常常量用於可能影響整個應用程序的行爲,例如選擇:
define('DEBUG', 1);
對於其他情況下,變量是更方便,使他們常用的,即使技術上它們的值在應用程序運行期間不變。
區別在於「define」函數不是用於定義常量的變量。
一個變量有能力改變數值,但常數通過代碼保持不變。
定義()似乎是常數,當作爲$ name是變量: http://php.net/manual/en/function.define.php
前者是不變的定義,一個變量後者的定義。前者不能在運行期間更改(至少不是在標準安裝中),而後者可以。
因此define
可能更適合於配置,因爲這些值在腳本運行時不會改變。
define用於定義CONSTANTS。那些「不能改變」的。
第二個用於定義變量。製作程序是最常用的方式。
在我看來,定義配置設置最好是使用常量,把它們放在一個單獨的配置文件中進行簡單訪問。
更多信息:
變量:http://php.net/manual/en/language.variables.php 常量:http://php.net/manual/en/language.constants.php
添加到答案,常量具有全局範圍,而變量不默認 – 2011-03-28 22:23:24