Есть класс с методами
class Test {
public function m1() {
}
public function m2() {
}
}
Есть наследник:
class randomName extends Test {
/*
public function m1() {
}
public function m2() {
}
*/
public function m111() {
}
public function m222() {
}
}
Прошу заметить, что в наследнике сейчас закоменчены методы родителя.
Вопрос: можно ли как-то проверить, что те самые методы не активны? Я хочу это для того, чтобы если не активны (закоменчены или вообще отсутсвуют), т вызвать методы m111
или m222
соответствнно.
Классы рефлексии, is_callable
и method_exists
не помогают это выявить достоверно. Либо я не понимаю как.
Нашел путь решения на enSO.
$reflector = new \ReflectionMethod($ob, 'createTable');
$isProto = ($reflector->getDeclaringClass()->getName() !== get_class($ob));
Суть в чем: проверяется наличие метода createTable
в объекте $ob
, далее сравнивается имя класса, в котором объявлен метод $reflector->getDeclaringClass()->getName()
и имя текущего объекта get_class($ob)
. Если они совпадают - то значит метод был переопределен, если нет - значит нет (значит например был закоментирован или просто не переопределен)
Виртуальный выделенный сервер (VDS) становится отличным выбором
В теге use идёт ссылка на svg спрайт и эта ссылка "не работает", то есть не задаёт правильный адрес
Есть небольшой скрипт, он прогоняет через себя все пиксели некоторого изображения, сохраняет в ассоциативный массив цвет пикселя и количество...
Подскажите, совсем новичкуНужно сделать исключение вызову функции, которое не поддерживается операционной системой
Аналог реальной программыКак переместить создание потоков (#pragma omp parallel) в main_, но оставить funcSerial однопоточным (последовательным)? funcSerial я распараллеливать...