Estaba trabajando en PHP alrededor de la palabra clave "static ::", y encontré un problema donde demasiadas llamadas estáticas producen confusión en cuanto a dónde reside un método. Es más fácil mostrar por ejemplo:Posible error de PHP alrededor de estática :: en PHP 5.3.3
class Class1
{
function Test()
{
return Class2::Test();
}
}
class Class2
{
function Test()
{
return static::Test2();
}
function Test2()
{
return true;
}
}
/* test 1: calling Class1::Test() statically results in expected call to Class2::Test2() */
echo "test 1: " . Class1::Test() . "\n";
/* test 2: instantiating the class causes Class1::Test2() to be called, which does not exist */
$Class1 = new Class1();
echo "test 2: " . $Class1->Test() . "\n";
quería alcanzar y obtener opiniones de los expertos en php que me puede decir si esto podría ser un error genuino o sencilla mal uso del lenguaje.
Me doy cuenta de que la configuración puede ser extraña con todas las llamadas estáticas, pero representa el código real que encontré.
Háganme saber si necesita más información o aclaración. Gracias por cualquier ayuda de antemano!
¿qué versión de PHP estás usando? la palabra clave estática no se extendió hasta 5.3 –
Creo que está preguntando si esto es realmente un error con la palabra clave estática y cómo se supone que todo el enlace estático final "funciona". – LLBBL
Olvidé mencionar, ejecutando 5.3.3 –