2011-03-18 149 views
19

這裏有許多功能與名稱前雙下劃線:爲什麼在PHP中雙下劃線(__)?

__construct, 
__destruct, 
__call, 
__callStatic, 
__get, 
__set, 
__isset, 
__unset, 
__sleep, 
__wakeup, 
__toString, 
__invoke, 
__set_state 
__clone 

我只需要知道爲什麼這個下劃線這些功能之前使用。

+2

只是說他們是特殊的(其中的一些,如__get,__set和__call被稱爲神奇的方法),並避免用自己的方法名干擾。 – Artefact2 2011-03-18 06:11:08

回答

30

如前所述here

PHP保留所有函數名 開始__爲神奇。這是 建議您不要使用__在PHP除非 你想記錄一些魔法 功能

長話短說,PHP調用這些函數使用 函數名隱含,你不應該使用這個命名約定自己。

4

Underscoritis。在PHP中,下劃線已被用於各種場合,例如在$ _XYZ superglobals中作爲前綴。

你列出的方法名是魔術方法。爲了讓它們看起來更有點專用它們的前綴有兩個下劃線。 - 這是通常發生在使用一個下劃線作爲公告已經太廣泛時。這種命名模式並不特定於PHP。

您仍然可以有兩個主要__定義自己的職能,但你不應該避免與真正的魔術方法或未來的語言擴展混亂。 (雖然這不是很可能。)

相關問題