如何设置父类取决于某些声明?



$switcher = true;

if($switcher) {
 class a extends class1{
 ...
}
else {
 class a extends class2 {
 ...
}


我需要这样的东西

$myclass = $switcher ? 'class1' : 'class2';

class a extends $myclass { //sure this will not work


但是如何在没有$myclass的情况下使用eval

谢谢

最佳答案

类是在编译时而不是运行时进行解析的,因此实际上是不能的。考虑改为创建具有不同父级的2个类,并根据您的$switcher动态实例化它们。尝试在运行时更改继承层次结构没有多大意义。

您打算使用的方法似乎正在重新考虑体系结构。如果class1class2是不同的类,那么根据定义,它们应该没有太多的共同点可与下游子类互换,并且如果它们确实有很多共同点,则可能指出继承性更高的问题。等级制,一个人可能需要从另一个继承。

关于php - 更改父类取决于变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14367967/

10-10 02:38