PHP Parse错误:语法错误,意外T_IF

时间:2012-11-09 21:04:25

标签: syntax if-statement php

我看了很多其他问题,但我找不到自己的答案。 这是我的语法错误(未完成的T_IF):

while(($rij1 = mysql_fetch_object($result1))
and( if ($voornaam=NULL) {
            $rij2 = ' ';}
elseif($voornaam!=NULL){
            $rij2 = mysql_fetch_object($result2);})

我在语法之前看了一行,但我找不到有什么问题...... 有人知道吗?

1 个答案:

答案 0 :(得分:4)

尝试将代码重写为:

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'); - 。正如您刚刚发现的那样,这种模式令人困惑,最好避免使用。