Voglio verificare se esiste una funzione in una libreria che sto creando, che è statica. Ho visto function e method_exists, ma non ho trovato un modo che mi permetta di chiamarli in un contesto relativo. Ecco un esempio migliore:Scoprire se esiste un metodo in una classe statica
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();
ho bisogno di essere in grado di effettuare test 3 eco Hi se la funzione esiste, senza bisogno di togliere l'contesto statico. Dato che la parola chiave per accedere alla classe dovrebbe essere 'self', come $ questo è per le classi assegnate.
Perché il metodo test1() non è sufficiente? – gapple
Perché voglio metterlo in una classe che sarà estesa da più classi. Potrei usare una costante magica per raggiungere questo obiettivo, ma dovrebbe esserci un modo più semplice. –