2010-07-18 68 views
6

使用其中一種有利嗎?變量還是常量?

$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; 
# OR 
define("LANG" , isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'); 

感謝

+1

'[PHP]'沒有必要,這是標籤的用途。 – Wrikken 2010-07-18 22:16:20

回答

5

在這種情況下,常數更合適。由於您希望通過整個應用程序使用相同的值,並且您不希望錯誤地更改它。

注意編程語言有很多你不需要用來實現一個算法的特性,而是它們在那裏使算法更具可讀性,可維護性和不易出錯。常量是這些類型的功能之一。

1

這取決於你想要做什麼。常數的值一旦定義就不能改變。變量可以。這種差異會讓你選擇你需要的一個。

+0

我明白了 - 我的意思是性能。 – MotionGrafika 2010-07-18 22:22:01

+0

@MotionGrafika:你遇到任何性能問題嗎?如果不是,請選擇更符合概念的方法。 – 2010-07-18 22:23:34

+0

我沒有做任何基準測試,常量看起來更好。 – MotionGrafika 2010-07-18 22:30:00

5

常量:

  1. 不能事後改變。
  2. 總是在範圍內(類/功能/方法)。
  3. 只能是標量(或文件的資源,但是這只是一個未公開的特性/錯誤)

變量:

  1. 是可以改變的。
  2. 可能超出範圍。
  3. 可以是任何數據。
+0

我知道這些 - 但從用戶角度來看 - 一旦用戶設置/重置,代碼中的值不會改變。 – MotionGrafika 2010-07-18 22:23:18

+1

你可能會得到體面的同事或你自己的項目的祝福:編碼人員可以改變你的變數,當你最不期待的時候...... – Wrikken 2010-07-18 22:24:57