@seqular
Сисадмин

Как исправить ошибки в PHP-коде?

В логах nginx очень много ошибок следующего вида:
PHP message: PHP Strict Standards:  Only variables should be passed by reference in /var/www/litl_admin_new/wp-content/themes/morise/functions.php on line 540


function comment_count( $count ) {
        global $id;
        $comments_by_type = separate_comments(get_comments('post_id=' . $id)); // <<-- эта строка
        $comcaunt = count($comments_by_type['comment']);
        return $comcaunt;
}


Как можно исправить?
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 3
0neS
@0neS
function comment_count( $count ) {
        global $id;
        $comments = get_comments('post_id=' . $id);
        $comments_by_type = separate_comments($comments); // <<-- эта строка
        $comcaunt = count($comments_by_type['comment']);
        return $comcaunt;
}
Ответ написан
copist
@copist
Empower people to give
PHP Strict Standards: Only variables should be passed by reference

Мануал php.net/manual/ru/language.references.pass.php

/* где-то в недрах Wordpress*/
function get_comments($condition) { return array(); } // результат функции get_comments() не является объектом и не возвращает ссылку
function separate_comments(&$comments) { } // параметр функции separate_comments() должен передаваться по ссылке

/* где-то у вас */
separate_comments(get_comments()); // <-- в данном случае недопустимо
Ответ написан
Комментировать
@entermix
По ссылке можно передавать только переменные.
https://php.net/manual/ru/language.references.pass.php

Почему не принимается переменная (массив)?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы