2009-11-30 34 views
7

當PHP函數名稱以下劃線開頭時,這意味着什麼?PHP函數中的下劃線

例如:__construct()

我知道是什麼意思的構建,但我見過其他地方的功能以下劃線或雙下劃線開始,我只是不知道的意義。

+0

謝謝大家,爲您解答。 – Stepppo 2009-11-30 18:05:31

回答

16

這意味着PHP會隱式地調用它。

它被稱爲「魔術方法」

此外,這是兩個下劃線,沒有之一。

更多在這裏學習:PHP Magic Methods

+4

啊。魔術在PHP中。無論接下來什麼? – 2009-11-30 16:54:03

+1

每個人都討厭php - 我正在考慮學習它:( – Amarghosh 2009-11-30 16:57:54

+2

引用獅子王:「有MAGIC在空氣中!!!' – 2009-11-30 17:03:18

5

在PHP中,功能開始以兩個下劃線通常有特殊的含義。從手冊:

PHP保留所有函數名稱 以__開頭爲神奇。它是 建議您不要在PHP中使用__的 函數名稱,除非 需要一些記錄的魔術 的功能。

例如__construct()是在初始化的對象被自動調用的特殊方法。

硒也:http://php.net/manual/en/language.oop5.magic.php

1

在其他的答案指出,雙下劃線是用於「神奇」的方法。這個想法是,用戶永遠不會有意使用兩個下劃線作爲方法名,所以幾乎沒有碰撞風險。我相信,它不是一個下劃線的原因是,在'私人'關鍵字出現以強制執行OO私密性之前,單個下劃線是在糟糕的(過去)時期私人方法的流行慣例。

0

在codeigniter中,如果您在帶有下劃線的控制器中啓動一個方法,路由器將知道不允許從url訪問它。

2

還有一個常見的命名「編碼風格」,它使用一個首字母下劃線表示方法或屬性是私有的/受保護的。我認爲這是相當普遍的。

+0

是的,我已經在C# – dmeehan 2015-12-17 23:16:05