Узнайте, существует ли метод в статическом классе
Я хочу проверить, существует ли функция в создаваемой мной библиотеке, которая является статической. Я видел функцию и method_exists, но не нашел способа, который позволил бы мне вызывать их в относительном контексте. Вот лучший пример:
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();
Мне нужно иметь возможность сделать тест 3 эхо Привет, если функция существует, без необходимости вынимать ее из статического контекста. Для ключевого слова для доступа к классу должно быть «self», так как $ это для назначенных классов.