php

wordpress trying to get property of non-object in wp-includes/post.php Ошибка при загрузке файла

trying to get property of non-object in wp-includes/post.php

Причина

Причина была в некорректном состоянии базы данных (не до конца развернулся дамп из-за ошибки ERROR 1062 (23000) at line....: Duplicate entry '0' for key 'PRIMARY').
Решение: дамп базы был загружен заново.

Выяснение деталей

Чтобы уточнить происходящее можно временно модифицировать код файла:

wordpress Получить все посты (записи) для данного элемента таксономии (term)

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

$args = array(
'post_type' => 'recipe_cpt',
'tax_query' => array(
    array(
    'taxonomy' => 'recipe_tx',
    'field' => 'term_id',
    'terms' => 37
     )
  )
);
$query = new WP_Query( $args ); 

Например:

php Как понять где именно в строке ошибка (в каком символе, когда номер строки известен)

Если в строке находится достаточно сложное выражение, то можно всегда разбить его на несколько строк, чтобы уточнить у интерпретатора что именно не так.

Пример разбиения одной строки на несколько

Рассмотрим пример:

<?php

$s = [];
$a = $s;
$s[1] = '123' . $a;

- для этого кода мы получим сообщение:

Notice: Array to string conversion in [...][...] on line 5

- написано, что происходит некорректная попытка привести массив к строковому типу в 5-ой строке программы, но на первый взгляд на строку:

php var_dump И print_r Какая разница и что есть общее между этими функциями

Просто цитируем официальный сайт PHP:

  • var_dump() -- Выводит информацию о переменной.
  • print_r() -- Выводит удобочитаемую информацию о переменной.

Так в чем же разница

Считается что формат print_r более удобный для чтения (на практике потому, что там содержится меньше информации, например, не выводится тип переменных).

php Передача значений по ссылке в функцию - плюсы и минусы, когда это стоит делать, а когда нет

Передача значений по ссылке в функцию (или метод класса) позволяет сохранить результат работы с переменной в функции для внешнего кода без возврата значения этой переменной из функции.

Изменение нескольких переменных в функции с помощью передачи по ссылке

Если некоторые переменные (все или часть) будут переданы в функцию по ссылке, тогда после вызова функции их значения будут изменены и снаружи.

php Возврат изменение нескольких значений в функции/методе, массив объект - что лучше отдавать наружу

Что лучше - одно значение или много значений

Если ваши значения никак логически друг с другом не связаны, то старайтесь для рассчета каждого параметра использовать отдельную функцию (или метод класса), подобных подход приводит к большей универсальности, т.к. рассчитывается только, что нужно, без лишних действий.
Если же логика вашей программы обязательно требует возврата "набора" значений, то читайте дальше ;)

php Точечная нотация - путь в многомерном массиве

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

'name.job.id'

, такой путь можно использовать как парамерт, который требует извлечь из массива, скажем, $arr элемент:

$arr['name'['job']['id']

php NULL как ключ массива приводится к пустой строке

Можно убедиться:

<?php

$a = [null => 5, 1 => 6];

foreach ($a as $k => $v)
{
    echo gettype($k) . ' ';
}

-- справедливо как минимум в php7.2
Поэтому если вы ищите в массиве ключ, то в принципе null можно возвращать как признак неудачи.

php Пример оформления решения задачи в виде функции

(заметка относится, как минимум, к этому списку задач)

Возьмём код из решения задачки (один из учеников), и прокомментирую его:

Pages

Subscribe to RSS - php