2012-08-14 62 views
2

在php中$_foo_foo有什麼區別?

+5

一個是變量,另一個是「假定」是一個常量。你爲什麼問這個問題? – Matt 2012-08-14 14:13:28

回答

8

一是指一個名爲_foovariable。第二個是指名爲_fooglobal constant。當您試圖訪問一個未定義的變量或undefined constant

默認情況下PHP會發出低嚴重錯誤。在這種情況下,變量的「值」將假定爲null,而常量的「值」將被假定爲其名稱的字符串化版本 - 在此例中爲'_foo'

+0

有一點需要補充:如果PHP沒有找到常量,PHP假定它是一個沒有引號的字符串! – ComFreek 2012-08-14 14:15:02

+0

@ComFreek:正在編輯提及此。感謝您的意見。 – Jon 2012-08-14 14:15:30

+0

「第二個是指一個全局變量命名_foo」 錯誤,_foo(單下劃線)是一種保護方法,雙下劃線是一個私有方法 – Dorian 2012-08-14 14:23:30

-1

變量前面有美元符號($)。在一個方法之前的下劃線(沒有美元符號)表示它是受保護的,雙下劃線表示它是私人的,它們不能被外部調用。

+0

這裏解釋:[http://php.net/manual/en/language.oop5.magic.php](http://php.net/manual/en/language.oop5.magic.php) – Dorian 2012-08-14 14:25:17

相關問題