2009-08-03 51 views
51

有人能解釋使用DEFINE VS變量在PHP

define('SOMETHING', true); 

$SOMETHING = true; 

之間的差異也許一方或另一方的利益?

我使用變量無處不在,甚至在包含到每個頁面的配置類型文件中我仍然使用變量,因爲我不明白爲什麼要使用define方法。

回答

76

DEFINE是一個常量,常量是全局的,可以在任何地方使用。它們也不能被重新定義,哪些變量可以。

我通常使用DEFINE作爲Configs,因爲沒有人可以在事後處理它,並且我可以在沒有global-ling的任何地方檢查它,以便於檢查。

+0

外面我能通過用戶的ID從數據庫到會議?例如定義($ _ SESSION ['user_id'],行['id'])行['id']來自數據庫 – 2017-01-03 08:13:59

11

一旦定義,'常量'不能在運行時更改,而普通的變量賦值可以。

常量對於像配置指令這樣的事情來說更好,在執行過程中不應更改它們。此外,如果值是恆定的,則代碼更容易閱讀(並保持移交),如明確地

6

define()與支持讀取和寫入操作的標準變量相比,它爲只讀變量。

+1

只是一個說明 - 我看不到術語「只讀變量」 define() - 如手冊所述,它定義了一個*名爲constant *,這是一個非常不同的東西。 – 2009-08-03 23:49:03

3

範圍也有所不同。

在由原始海報給出的示例中,$SOMETHING將不能在函數內訪問,而define('SOMETHING', true)將會是。

0

常量是非常有用的,當你從一個函數內部要訪問數據,檢查該

<?php function data(){ 
define("app","hey you can see me from outside the function",false); 

$tech = "xampp"; } data(); echo $tech; echo app; ?> 

如果你使用一個變量,你永遠不會得到這裏的內在價值是什麼,我得到

注意:未定義的變量:高科技在d:\ XAMPP \ htdocs中\在線數據\的index.php 8 嘿,你可以看到我從功能