Quiero comprobar que existe una función en una biblioteca que estoy creando, que es estática. He visto function y method_exists, pero no he encontrado una forma que me permita llamarlos en un contexto relativo. Aquí está un ejemplo mejor:Averiguar si existe un método en una clase estática
class myClass{
function test1()
{
if(method_exists("myClass", "test1"))
{
echo "Hi";
}
}
function test2()
{
if(method_exists($this, "test2"))
{
echo "Hi";
}
}
function test3()
{
if(method_exists(self, "test3"))
{
echo "Hi";
}
}
}
// Echos Hi
myClass::test1();
// Trys to use 'self' as a string instead of a constant
myClass::test3();
// Echos Hi
$obj = new myClass;
$obj->test2();
tengo que ser capaz de hacer la prueba de eco 3 Hola, si la función existe, sin necesidad de sacarlo de contexto estático. Dada la palabra clave para acceder a la clase debe ser 'self', ya que $ es para clases asignadas.
¿Por qué no es suficiente el método test1()? – gapple
Porque quiero poner esto en una clase que se extenderá por varias clases. Podría usar una constante mágica para lograr esto, pero debería haber una manera más fácil. –