2010-08-16 100 views
0

如何在運行時在PHP中創建或定義類並定義其屬性和功能? 這可能嗎?如何在運行時在PHP中創建或定義類?

+4

在運行時無需創建類就可能解決問題的方法很多。這很麻煩。 – zneak 2010-08-16 04:11:18

+2

這是潘多拉盒子。如果您在這一努力中找到任何成功,請確保您已準備好了,因爲您必須跟蹤這些運行時類的運行時定義的類和對象實例。 – stillstanding 2010-08-16 04:55:54

回答

0

編號

但是,您可以動態地爲特定實例添加屬性。

說這個eval允許這個問題就像在Java中說的那樣,你可以寫一個源文件,編譯它並加載它(或者在PHP中可以包含它)。當然,這是可能的,但它實際上並不是語言的一部分。

+1

嗯,其實,是的。但不推薦。 – zneak 2010-08-16 04:10:36

+0

@zneak我編輯過。 – Artefacto 2010-08-16 04:31:44

1

你可以創建一個通用的可擴展類,並使用魔術__set() and __get() methods動態添加屬性。沒有辦法,但對不起。

+4

重載方法有__call和__callStatic魔術。 – GWW 2010-08-16 04:04:37

5

你可以,可以,使用eval
但是,請不要!

元編程不是PHP特別擅長的,因此您應該嘗試在運行時不需要創建類的情況下解決問題。

0

基本上

class A { 
    function B() {...} 
} 

一切在PHP在運行時定義的,所以你應該罰款這一點。您也可以嘗試

include 'some.class.php'; 

「include」與「eval」相同,但以某種方式具有更好的圖像。