Я работаю над этим фрагментом кода около часа и не могу понять, почему он не работает. Предоставляет ли PHP инструкции If / Else внутри циклов While? Я попытался добавить разные эхо-сигналы к операторам 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"; }
if ($layout = "vertical")
должно быть:
if ($layout == "vertical")
В противном случае вы оцениваете значение $ layout of 'vertical', противоположное сравнению его значения, чтобы увидеть, равно ли оно «вертикали». Это назначение в противном случае будет равно true, причина, по которой выполняется первая часть, а ELSE – нет.
Один из методов, который я использую для предотвращения таких несчастных случаев, – это сначала поставить константу, такую как:
if ("vertical" == $layout)
Таким образом, если я пропущу другой = знак PHP будет ошибкой, а не присваивать значение ошибочно.