происходит с кодом, подобным xyz->method()
, где xyz
не является объектом и, следовательно, method
не может
Это фатальная ошибка, которая остановит сценарий (уведомление о прямой совместимости: это станет захватывающей ошибкой, начиная с PHP 7).
Чаще всего это знак что в коде отсутствуют проверки условий ошибок. Убедитесь, что объект фактически является объектом перед вызовом его методов.
Пример типичного будет
// ... some code using PDO
$statement = $pdo->prepare('invalid query', ...);
$statement->execute(...);
В приведенном выше примере запрос не может и prepare()
назначит false
на $statement
. Попытка вызвать метод execute()
приведет к Fatal Error, потому что false
является «не объектом», потому что значение является логическим.
Выясните , почему ваша функция вернула логическое значение вместо объекта. Например, проверьте объект $pdo
для последней произошедшей ошибки. Подробности о том, как отлаживать это, будут зависеть от того, как обрабатываются ошибки для конкретной рассматриваемой функции / объекта / класса.
Если даже сбой ->prepare
не выполняется, то ваш дескриптор
// ... some code using PDO
$statement = $pdo->prepare('invalid query', ...);
$statement->execute(...);
базы данных
// ... some code using PDO
$statement = $pdo->prepare('invalid query', ...);
$statement->execute(...);
не попал в текущий объем . Найдите, где он определился. Затем передайте его как параметр, сохраните его как свойство или поделите его через глобальную область.
Другой проблемой может быть условное создание объекта, а затем попытка вызова метода вне этого условного блока. Например,
if ($someCondition) {
$myObj = new MyObj();
}
// ...
$myObj->someMethod();
Пытаясь выполнить метод вне условного блока, ваш объект не может быть определен.
Вопросы, относящиеся:
А-ч, я нашел ответ.
:1,$join
Работы как очарование.
РЕДАКТИРОВАНИЕ : Как указано в комментарии:
:%join -or- :%j
... удаляет диапазон.
Иначе:
ggVGJ
" ggVG
" визуально выбирает все строки, и" J
" присоединяется к ним.
Можно сделать это в три меньше нажатий клавиш:
:1,$j
разве редактор не является главным?
Загадочный путь:
qqqqqJ@qq@q
(первые три q
очищаются эти q
регистр, qqJ@qq
записи макрос к эти q
регистр, который выполняет Соединение, затем звонит q
, и последнее @q
выполнения это.
I’m удивил, никто даже не упомянул другой путь:
:%s/\n/ /
я одинаково удивлен, что никто не указал, что диапазон 1,$
имеет стенографию that’s записанный %
.
(Этот doesn’t делают то же самое как присоединение к строкам, но в зависимости от обстоятельств, которые могут на самом деле быть более соответствующими.)