Есть в PHP оператор ->, при помощи которого мы обращаемся к свойствам и вызываем методы объекта. Вот если этот оператор применить не к объекту, то как раз с такой ошибкой мы и столкнемся.
Если эта ошибка появилась перед вашими глазами, значит, сейчас в той строке, номер которой написан в тексте сообщения об ошибке, не объект. Даже если нам очень хочется, чтоб там был объект и мы всё для этого сделали - ошибка есть и это не объект.
Значит, надо посмотреть, почему это не объект. Возможны вот такие причины:
- Опечатка в имени переменной;
- Между созданием объекта и его использованием чьи-то злые руки написали что-то типа $obj = 5, после чего $obj перестал быть объектом и мы это забыли.
- Третья причина возникает, когда мы не сами создаем объект оператором new, а ссылку на объект возвращает какая-то функция. Причем она не обязательно написанная вами, а может быть это какая-то функция используемого фреймворка или чего-то там еще.
Вот эти функции, при невыполнении некоторых условий, возвращают false или что-то там еще, а не объект. Значит, нужно разбираться уже с этой функцией и смотреть, почему она так себя ведет. Делается это с помощью нехитрых приемов отладки, описанных тут и тут.
Вот.
|