Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданный T_IF
Я посмотрел на многие другие вопросы, но не могу найти в этом свой ответ. вот моя синтаксическая ошибка (необъявленный T_IF):
while(($rij1 = mysql_fetch_object($result1))
and( if ($voornaam=NULL) {
$rij2 = ' ';}
elseif($voornaam!=NULL){
$rij2 = mysql_fetch_object($result2);})
Я посмотрел на строку перед синтаксисом, но не смог найти, что не так... Кто-то знает это?
1 ответ
Попробуйте переписать ваш код как:
while ($rij1 = mysql_fetch_object($result1))
{
if ($voornaam === NULL)
{
$rij2 = ' ';
}
else
{
$rij2 = mysql_fetch_object($result2);
}
}
Изменить: исправил ваше состояние в первом if
как заметил @andrewsi - =
является оператором присваивания, поэтому ранее ваш код менялся $voornaam
в NULL
, а затем проверка, если результат оценивается как true
(что, конечно, никогда не будет - поэтому второй блок всегда будет выполняться)
В исходном коде вы используете and
оператор - предположительно, увидев, что он используется в некоторых хорошо значимых, но плохо закодированных примерах, таких как mysql_connect(...) or die('an error occurred');
,
В этом примере происходит то, что результат первого утверждения - mysql_connect()
- проверено. Если он оценивается как true, второй оператор никогда не выполняется, но если он оценивается как false, то второй оператор - die('an error occurred');
- выполнен. Как вы только что обнаружили, этот паттерн сбивает с толку и его лучше избегать.