2012-03-13 32 views
0

是否可以定義自定義名稱像是否可以在PHP中創建像「public」和「private」這樣的自定義可見性名稱?

thing function foo() { 
    // 
} 

哪裏thing是自定義名稱的方法呢?

我想擁有自己的關鍵字,例如「public」,「private」,「static」,然後從對象中獲取所有thing s,與get_class_methods()獲取方法類似。

+1

@Ella請詳細說明您嘗試解決的實際問題。可能有辦法做到這一點,而不是這個。 – deceze 2012-03-13 02:32:39

+0

好吧,我有一組類,它們像主應用程序的「插件」一樣。這些插件可以將一個方法「附加」到一個URL路徑(當你轉到那個函數將運行的URL)。我將這些方法稱爲「事件」,我想知道是否有可能將它們命名爲「event function ...」 – ellabeauty 2012-03-13 02:37:53

回答

1

不,PHP不是那種可擴展的。

您可以做的最接近的事情是使用__call方法並在那裏實施某種限制性行爲。要警告的是,這通常不會產生最易讀的代碼,因此應該小心謹慎地完成它。

4

當然,你只需要改變PHP解釋器的源代碼!

如果你的意思是使用PHP本身,那麼沒有。無論如何,你爲什麼要這麼做?

+0

這只是我有一些必須具有某些方法的對象,我希望將它們按不同的方式分組 – ellabeauty 2012-03-13 02:31:19

+1

+1爲改變源的動機... – Jon 2012-03-13 02:31:23

+1

Ella如果你的意思是有一個由解釋器強制執行的實際分組,你可能想看一下接口http://php.net/interface - 至於Visual Aid,您可以嘗試使用命名空間,註釋(/ * INDENTIFIER */...)或命名約定。 – Nathan 2012-03-13 02:33:03

1

總之:不,這是不可能的。

publicprotected,privatestatic是具有改變特定功能的特定含義的關鍵字。 PHP不支持其他沒有意義的關鍵字。

相關問題