2010-12-13 49 views

回答

5

如果你定義常量define("YEAR",365);在執行期間,你不能改變它,以便今年將永遠是365米沒有什麼。另一方面,變量可以在腳本執行期間更改它們的值,並且它們具有局部範圍,這意味着它們僅在它們聲明的函數文件中可用。常量具有全局作用域,可以從整個腳本中訪問它們。

http://php.net/manual/en/language.constants.php

http://planetozh.com/blog/2006/06/php-variables-vs-constants/

+0

我看到了 - 它就像是java常量,這很有道理,我只是從來沒有使用它們,所以我不知道它是什麼。謝謝。 – JDelage 2010-12-13 15:27:10

2

常量是爲了用於該程序運行過程中不改變的值。它們不存儲在內存中。

好的做法是將稍後可能在文件頂部的常量中更改的靜態參數,以便可以在必要時找到並輕鬆更改它們,而不是查找/替換所有內容。

另一個:常數應該始終在CAPITAL_LETTERS中,所以很明顯它是一個常量。

2

當您想要一個永不改變的全局可訪問值時,可以定義常量。例如,您可以爲網站編輯器定義一個常量,這些常量必須出現在很多頁面上,並且如果貴公司聘請了不同的網站編輯器,那麼這個PITA就會發生變化。

所以,

define('WEBEDITOR','Tom Jones'); 

然後徘徊無論你需要輸出 '湯姆·瓊斯',只是回聲WEBEDITOR。

一個變量,就是那個:變量。它改變。

+0

常量總是具有全局範圍? – JDelage 2010-12-13 15:37:30

+1

@JDelage:在PHP中,是的,除非它們是類常量。由於您似乎在學習PHP,因此您應該知道在線手冊非常全面。在這裏檢查常量:http://ca2.php。net /常量 – dnagirl 2010-12-13 17:55:17

0

常數的值不能改變。

命名常數通常被認爲是不好的做法在大多數語言(除編譯條件語句的情況下 - 這PHP不使用,被解釋 - 或者,如果它是有保證的,他們都集中在市中心,如在配置文件中),所以最好不要過度使用它們,而應儘可能使用class constants

其原因在於,它可能會使確定常量的位置變得更加困難,並且更難避免名稱衝突。

+3

但是,使用常量作爲配置值是可以接受的。只要你把它們全部定義在一個地方。這對於任何可能位於不同服務器上的大型應用程序都很重要,並且需要一種方法來查找大量服務器特定的值,這些值會根據服務器的不同而發生變化。就像任何事情一樣,你可以濫用它們。但是,如果你正確使用它們,它可以是一個真正的節省時間。 – DampeS8N 2010-12-13 15:31:57

+0

@ DampeS8N:的確如此。我會編輯說通常不好的做法。我認爲這是一個普遍的概念。 – webbiedave 2010-12-13 15:33:09

+0

他們被認爲是不好的做法,因爲他們是全球性的? – JDelage 2010-12-14 05:55:06

相關問題