是否可以声明一个类并让它扩展变量?
class Child extends $parentClass {}
答案 0 :(得分:1)
是的,它与eval有关。但不建议这样做。
<?php
function dynamic_class_name() {
if(time() % 60)
return "Class_A";
if(time() % 60 == 0)
return "Class_B";
}
eval(
"class MyRealClass extends " . dynamic_class_name() . " {" .
# some code string here, possibly read from a file
. "}"
);
?>
Eval是邪恶的吗?! Read this
答案 1 :(得分:0)
不,你不能。
这是因为在正常的定义中:
class A extends SomeOtherClass {
}
SomeOtherClass是名称空间引用,而不是类的实例。并且您不能使用变量来提供该命名空间,因为PHP中的变量是在运行时定义的,而类是在编译阶段定义的。
但是......如果你使用PHP7,你可以这样做:
$newClass = new class extends SomeOtherClass {};
这不是你想要的,但在某种程度上。
答案 2 :(得分:0)
一个Class不能从变量扩展,你需要将变量包装在一个类中进行扩展。希望这有帮助