Вопрос наверное глупый, но не могу найти как его правильно решить. Например, в одном классе создаю коллекцию: Код (Text): $collection = new Collection([....]); Затем передаю ее в метод другого класса: Код (Text): Obj->method($collection); И в этом методе мне уже не доступны методы коллекции: Код (Text): $methodCollection = $collection; $methodCollection->? Какие есть способы решения? И второй похожий пример: В одном методе получаю $doc и передаю его в другой метод: Код (Text): $doc = hQuery::fromUrl( $url, ['user-agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'] ); В другом методе я уже не могу применить к $doc селекторы: Код (Text): $doc->find($selector); Я понимаю почему это не работает, но как это правильно разрулить?
изучайте public - внешний доступ all protected - внутренний доступ с наследием private - внутренний доступ, где прямой доступ как внешний/наследуемый(protected) заблокирован
Это с какой радости они вдруг не доступны? Все public методы доступны везде, куда бы вы свой объект не засунули
что ты хотел сказать этим знаком вопроса, что автокомплит твоего IDE не показывает тебе подсказку? помоги ему, напиши в phpdoc какой тип у объекта $methodCollection если это переменная, то так: /** @var App\Models\Hujnane $methodCollection */ а если это параметр функции, то укажи тайпхинт параметра function xxx(App\Models\Hujnane $methodCollection) а если тип может быть разным, то и в подсказке смысла нет. как-то так --- Добавлено --- я думаю речь о подсказках IDE ↑↑↑