0

我查看了许多其他问题,但我无法在其中找到自己的答案。这是我的语法错误(意外的 T_IF):

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

我查看了语法之前的那行,但找不到问题所在……有人知道吗?

4

1 回答 1

4

尝试将您的代码重写为:

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

编辑:在第一个中更正了你的条件if,因为@andrewsi 发现 -=是一个赋值运算符,所以之前你的代码正在更改$voornaamNULL,然后检查结果是否评估为true(当然,它永远不会 - 所以第二个块总是执行)

在您的原始代码中,您正在使用该and运算符 - 大概已经看到它在一些含义良好但编码不佳的示例中使用,例如mysql_connect(...) or die('an error occurred');.

该示例中发生的情况是第一个语句的结果 - mysql_connect()- 被检查。如果它的计算结果为真,则第二条语句永远不会执行,但如果它的计算结果为假,那么第二条语句 - die('an error occurred');- 将被执行。正如您刚刚发现的那样,这种模式令人困惑,最好避免。

于 2012-11-09T21:06:34.773 回答