【问题标题】:PHP If / Else statement not working in While loopPHP If / Else 语句在 While 循环中不起作用
【发布时间】:2012-12-09 02:03:13
【问题描述】:

我已经在这段代码上工作了大约一个小时,但似乎无法弄清楚为什么它不起作用。 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";
    }

【问题讨论】:

  • else关键字有拼写错误,应该是'else',而不是'Else'
  • PHP 对此不区分大小写。
  • 是的,我同意你的看法,但是如果我在那个行号上执行它,因为 PHP 已被贬低,为什么我会收到一个致命错误:类似的事情
  • 而且你在这里的回答是正确的,但我仍然觉得,即使这可能是一个原因
  • 我没有收到这样的错误。你能发布错误的确切输出吗?

标签: php while-loop if-statement


【解决方案1】:
if ($layout = "vertical")   

应该是:

if ($layout == "vertical")   

否则,您正在为“vertical”的 $layout 分配一个值,而不是比较它的值以查看它是否等于“vertical”。否则该分配将等于 true,原因是第一部分运行而 ELSE 不运行。

我用来防止此类事故的一种方法是将常量放在首位,例如:

if ("vertical" == $layout)   

这样如果我错过了另一个 = 符号 PHP 会出错,而不是错误地赋值。

【讨论】:

    猜你喜欢
    • 2015-11-08
    • 1970-01-01
    • 2023-03-15
    • 2012-06-18
    • 2015-04-07
    • 2014-07-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多