是否可以定義自定義名稱像是否可以在PHP中創建像「public」和「private」這樣的自定義可見性名稱?
thing function foo() {
//
}
哪裏thing
是自定義名稱的方法呢?
我想擁有自己的關鍵字,例如「public」,「private」,「static」,然後從對象中獲取所有thing
s,與get_class_methods()
獲取方法類似。
是否可以定義自定義名稱像是否可以在PHP中創建像「public」和「private」這樣的自定義可見性名稱?
thing function foo() {
//
}
哪裏thing
是自定義名稱的方法呢?
我想擁有自己的關鍵字,例如「public」,「private」,「static」,然後從對象中獲取所有thing
s,與get_class_methods()
獲取方法類似。
不,PHP不是那種可擴展的。
您可以做的最接近的事情是使用__call方法並在那裏實施某種限制性行爲。要警告的是,這通常不會產生最易讀的代碼,因此應該小心謹慎地完成它。
當然,你只需要改變PHP解釋器的源代碼!
如果你的意思是使用PHP本身,那麼沒有。無論如何,你爲什麼要這麼做?
這只是我有一些必須具有某些方法的對象,我希望將它們按不同的方式分組 – ellabeauty 2012-03-13 02:31:19
+1爲改變源的動機... – Jon 2012-03-13 02:31:23
Ella如果你的意思是有一個由解釋器強制執行的實際分組,你可能想看一下接口http://php.net/interface - 至於Visual Aid,您可以嘗試使用命名空間,註釋(/ * INDENTIFIER */...)或命名約定。 – Nathan 2012-03-13 02:33:03
總之:不,這是不可能的。
public
,protected
,private
和static
是具有改變特定功能的特定含義的關鍵字。 PHP不支持其他沒有意義的關鍵字。
@Ella請詳細說明您嘗試解決的實際問題。可能有辦法做到這一點,而不是這個。 – deceze 2012-03-13 02:32:39
好吧,我有一組類,它們像主應用程序的「插件」一樣。這些插件可以將一個方法「附加」到一個URL路徑(當你轉到那個函數將運行的URL)。我將這些方法稱爲「事件」,我想知道是否有可能將它們命名爲「event function ...」 – ellabeauty 2012-03-13 02:37:53