2

私はこのコードを約1時間作業してきましたが、なぜ機能しないのか理解できないようです。PHPはWhileループ内でIf/Elseステートメントを許可しますか?If / Elseステートメントの両方に異なるエコーを追加しようとしましたが、後者(Else)は表示されません。これは、同じ変数名を使用しようとしているためですか?

while($row = mysql_fetch_array($result))

{

//assign variables
$title = $row['title'];
$file_url = $row['file_location'];
$category = $row['category'];
$layout = $row['layout'];


    If ($layout = "vertical")       
    {
        //Page Layout
        $BODYLAYOUT = "vertical_body";
        $GAMECONTAIN = "vertical_gameContain";
        $GAMEWIDTH = "vertical_game";
    }
    Else
    {
        // Page Layout
        $BODYLAYOUT = "horizontal_body";
        $GAMECONTAIN = "horizontal_gameContain";
        $GAMEWIDTH = "horizontal_game";
    }
4

1 に答える 1

6
if ($layout = "vertical")   

する必要があります:

if ($layout == "vertical")   

それ以外の場合は、値を「vertical」と比較して「vertical」と等しいかどうかを確認するのではなく、「vertical」の$layoutに値を割り当てます。それ以外の場合、その割り当てはtrueに等しくなります。これは、最初の部分が実行され、ELSEが実行されないためです。

このような事故を防ぐために私が使用する1つの方法は、次のような定数を最初に置くことです。

if ("vertical" == $layout)   

そうすれば、他の=記号を見逃した場合、PHPは値を誤って割り当てるのではなく、エラーになります。

于 2012-12-09T02:06:21.040 に答える