Я пытаюсь использовать функцию php function_exists, но мне нужно проверить, существует ли метод в родительском классе объекта.method_exists в родительском классе php
так:
class Parent
{
public function myFunction()
{
/* ... */
}
}
class Child extends Parent
{
/* ... */
}
$myChild = new Child();
if (method_exists($myChild, 'myFunction'))
{
/* ... */
}
if (method_exists(Parent, 'myFunction'))
{
/* ... */
}
if (is_callable(array('Parent', 'myFunction'))
{
/* ... */
}
Но ни один из вышеперечисленных не работают. Я не уверен, что попробовать дальше.
Спасибо за помощь!
Я считаю, что 'is_callable()' требует, чтобы экземпляр класса был первым индексом массива, а не именем класса. то есть. 'if (is_callable (array ($ myChild, 'myFunction')))' - хотя для этого для работы ваш класс 'Child' должен расширять« Parent »(как указано ниже). – MrWhite
Вам нужно знать, если: а) именно родительский класс реализует метод; б) любой предок данного класса реализует метод; в) объект производного класса «имеет» конкретный метод; г) вы можете вызвать конкретный метод для объект? – VolkerK