2012-04-30 71 views
2
使用下劃線

我打算揭露一些常見的變量在我的劇本全局,我想知道如果下面的命名方案將被認爲是不好的想法:用單下劃線開頭全球PHP變量

  1. $_some_var_
  2. 使用三重底線在像開頭::像結束$___some_var

我知道PHP使用單下劃線開頭的超全局變量和雙下劃線的魔術方法,所以日不應該有任何衝突。還有什麼可能會導致麻煩?這是否因爲其他原因而被認爲是不好的?

謝謝!

+5

是,使用全局變量被認爲是不好的。也有一個*適當的*方式實現相同的東西,而不用全局變量 – zerkms

+1

@zerkms:我認爲OP是詢問下劃線,而不是全局的用法......但是,全局變量是不好的! –

+0

爲什麼globals如此皺眉?根據我的理解,避免使用全局變量的唯一原因是爲了避免命名衝突,是否有其他原因可以避免?順便說一句,我這樣做的原因是存儲數據庫讀取,將在網頁(用戶信息)幾乎所有地方使用,所以我認爲這是有道理的閱讀一次,並將其存儲爲全球。 – Peter

回答

1

這樣不會引起任何問題。爲了便於打字,您可能只想使用單下劃線。在我的應用程序中,如果我必須引入這樣的全局變量,我可以在函數內部和外部的許多腳本中使用這些全局變量,我使用$GLOBALSsuperglobal,因此很顯然,被訪問的變量是全局變量。

這也節省了必須在功能中使用global $somevar;。但是,根據您使用它們的頻率,它的輸入更多。

可能的值是constants還是它們實際上是可變的?

+0

我完全忘記了php全局變量不包含在本地範圍內,你可能以後爲我節省了一些調試時間,謝謝! – Peter

+0

:)優秀的,我提到它,因爲我已經多次成爲它的受害者。這很容易忘記! – drew010

0

如果你真的認爲你需要全局狀態,那麼如何創建一個靜態類呢?

class myVars { 

    static property $var1; 

} 
0

如果他們被視爲常數然後使用: 定義(「CONSTANT_NAME」,值)

如果他們是真正的全局變量,那麼一個約定是: $ mVariableName