<?php
$dbhost = "localhost";
$dbuser = "test";
$dbpass = "testpass";
$dbname = "testdb";
foreach((get_the_category('orderby=ID&order=ASC')) as $childcat)
{
if (cat_is_ancestor_of(8, $childcat))
{
echo $childcat->cat_ID . ;
}
}
?></span>
</ul>
Это код выше, который у меня есть в php, его отображение значений правильно, но я получаю эту ошибку:
Ошибка анализа: синтаксическая ошибка, неожиданная '; по строке 20.
Что я здесь делаю неправильно? Есть ли проблема синтаксиса здесь? Он правильно отображает значения, но также показывает эту ошибку.
Я предполагаю, что это строка 20:
echo $childcat->cat_ID . ;
Вам не хватает строки для добавления. Если вы не хотите добавлять строку, не используйте .
оператор.
echo $childcat->cat_ID . ;
У вас есть задний период.
Попробуйте использовать var_dump ($ childcat); Выход; перед строкой 20, чтобы увидеть, что содержит $ childcat, он всегда что-то возвращает. Если переменная пуста, var_dump возвращает null, поэтому попробуйте ее и посмотрите. Также выполните var_dump на $childcat-> cat_ID, чтобы проверить его значение. Строка 20 с '.' оператор ошибочен, и вы должны выяснить, почему вы получаете вывод, добавив оператор конкатенации в конце, это можно сделать, проверив переменные через var_dump, а затем продолжайте движение в соответствии с результатами, которые вы получаете.
Проблема заключается в этой строке:
echo $childcat->cat_ID. ;
Период (точка) является оператором конкатенации в PHP, поэтому препроцессор ожидает, что вы что-то конкатенируете, но вместо этого получаете конец (;).
В вашем коде есть ошибка.
+ Изменить
echo $childcat->cat_ID . ;
в
echo $childcat->cat_ID ;