2011-05-28 208 views
3

可能重複:
What's the deal with a leading underscore in PHP class methods?在php中函數意味着什麼?

我認爲這是很好地說明了...這是什麼意思,如果你看到一個函數開始在PHP中的下劃線?我已經看過很多次了,但我仍然不知道它是什麼!它仍然有效,但從底線開始看起來很奇怪,我懷疑這只是一個慣例,但我不知道它是什麼。我不是在談論雙重下劃線函數(即__construct()),而是一個下劃線。

我最好的猜測是它意味着它是你自己獨特的功能,你希望別人知道嗎?

+0

哎呀,我想stackoverflow會讓我有最後的發言在關閉這個,因爲重複很多回答我的問題。 :/我剛剛關閉了......還需要一個。 – netrox 2011-05-28 04:48:18

+0

這一切都很好,你可以接受一個答案。我相信在將來收集足夠多的選票時(或不會),這一點可以在將來合併。無論哪種方式,它仍然是有用的,這些答案是正確的。這裏有另一個:[關於PHP下劃線的命名約定(如「_method」或「_property」)](http://stackoverflow.com/q/5766138) – 2011-05-28 04:51:04

回答

9

就語言本身而言,沒有任何意義,但單下劃線前綴通常用於表示「私人」或「隱藏」類成員。

有時您會看到下劃線前綴爲所有privateprotected成員,只是爲了讓它更明顯,它們不是公開可用的。其他時候,無論訪問級別如何,下劃線都可以表示「內部」功能,可以在技術上使用,但不鼓勵使用該功能。

4

一般來說,程序員在函數中使用前導下劃線來表示這是一個內部函數(不是意味着從外部調用),如果可能的話,它們會使它變爲私有的。

它只是一種做法。一般來說,允許函數名稱以下劃線開頭的編程語言不會以任何方式將它們與其他函數區別開來。即使一種語言允許你明確地將一個功能私人化,人們仍然可以習慣性地使用這種慣例。