¿Es posible declarar una clase y hacer que extienda una variable?
class Child extends $parentClass {}Sí, es con eval. Pero no se recomienda.
<?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 es un mal? Lee esto .
no, no puedes
esto se debe a que en una definición normal:
class A extends SomeOtherClass { }SomeOtherClass es una referencia de espacio de nombres, no una instancia de la clase. Y no puede usar una variable para proporcionar ese espacio de nombres porque las variables en PHP se definen en tiempo de ejecución, mientras que las clases se definen en la fase de compilación.
Pero... si estás usando PHP7, puedes hacer esto:
$newClass = new class extends SomeOtherClass {};que no es exactamente lo que quieres, pero va de alguna manera.
Una clase no puede extenderse desde una variable. Debe envolver la variable dentro de una clase para extenderla. Espero que esto ayude