2010-08-16 38 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”相同,但以某种方式具有更好的图像。