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が発見したように、最初の の条件を修正しました-=は代入演算子であるため、以前はコードが に変更$voornaamされNULL、結果trueが実行する)

元のコードでは、and演算子を使用しています。おそらく、意味はあるがコーディングが不十分な例で使用されているのを見たことがあるでしょうmysql_connect(...) or die('an error occurred');

その例で何が起こっているかというと、最初のステートメントの結果mysql_connect()がチェックされます。true と評価された場合、2 番目のステートメントは実行されませんが、false と評価された場合、2 番目のステートメントdie('an error occurred');が実行されます。お気づきのように、このパターンは紛らわしく、避けるのが最善です。

于 2012-11-09T21:06:34.773 に答える