Как узнать откуда метод

316
05 августа 2017, 05:22

Незайтеливый вопрос про ООП, код упрощен для понимания.

abstract class Two {
}
class One extends Two{
    $res = $this->parent->get($id, array(...));
}
method_exists('One', 'get')); // false

Two абстрактный, его бессмысленно проверять. Вопрос: где искать метод get?

Answer 1

Ищите в объекте $this->parent собственно. Данное свойство хранит ссылку на экземпляр какого-то вашего объекта, у которого и вызывается метод get...

Просто способ, чтобы узнать, экземпляр какого класса это свойство — выведите:

print_r($this->parent);

И либо в этом классе метод объявлен, либо он наследуется, либо в самом классе или наследуется есть перегрузка методов __call — нужно выяснять.

А лучше пользоваться какой-нибудь IDE, например, PhpStorm. В ней достаточно «нажать» на данный метод и «магическим» образом перейдете на объявление метода, если он там объявлен...

READ ALSO
Кирилица в Get запросе curl

Кирилица в Get запросе curl

У меня есть скрипт который отлично работает с базой, но проблема возникает когда пытаюсь отправить запрос содержащий кирилицу через php, когда...

404
Google Shopping API parse (PHP)

Google Shopping API parse (PHP)

Доброго времени суток

257
Бесконечное выполнение PHP в Bash

Бесконечное выполнение PHP в Bash

Есть скрипт на Bash, запускающий PHP скрипт:

401
Bitrix Значения свойств в отдельной таблице инфоблока

Bitrix Значения свойств в отдельной таблице инфоблока

Всем привет, имеется bitrix, значения свойств инфоблока хранятся в отдельной таблицеА как посмотреть где эта отдельная таблица ??? Пару часов...

326