【问题标题】:elseif statement not workingelseif 语句不起作用
【发布时间】:2013-07-03 08:52:22
【问题描述】:

我编写了一些效果很好的脚本,但是我尝试添加一个 elseif 语句,其中似乎完全没有做任何事情,无法弄清楚我哪里出错了。 (是的,我是 PHP 新手,但我正在努力!:)

$i = 0;
foreach($arrJobs as $job)
{
    echo "<div class=\"job-ind\">\n";
    echo '<p><a href="' . $job->url . '">' . $job->title . ', ' . $job->location . "</a></p>\n";
    echo '<p class="smaller">Reference: ' . $job->reference . "</p>\n";
    echo '<p><strong>' . $job->salary . "</strong></p>\n";
    echo "</div>\n";

    if (++$i == 5) break;

    elseif ($i == 0) {
        echo '<img src="img/no-vac.png"/>';
    }
}

elseif 语句中的所有内容都运行良好。 一定是我遗漏或误解的简单事情!

【问题讨论】:

    标签: php if-statement


    【解决方案1】:

    $i 在此位置永远不会是 0
    在测试前的 if 语句中增加它 (++$i)。

    【讨论】:

    • @MaximKumpan 显然不像他所说的那样,我的“陷入困境的语法迷”修复解决了他的问题
    【解决方案2】:

    Note that elseif and else if will only be considered exactly the same when using curly brackets.

    if (++$i == 5) break;
    
    elseif ($i == 0) {
        echo '<img src="img/no-vac.png"/>';
    }
    

    不行,改成:

    if ($i == 0) { 
        echo '<img src="img/no-vac.png"/>'; 
    }
    elseif (++$i == 5) {
       break;
    }
    

    elseifelse if

    我看到很多人在帖子中讨论这个问题。 这些都是正确的,并且都可以工作。

    区别在于:

    else if() {
    }
    

    翻译为:

    else {
        if(){
        }
    }
    

    并且不能像这样在使用冒号的代码块中使用:

     if:
       stuff
     else if()://won't work
       //stuff
     endif;
    

    【讨论】:

    • 如果不使用 { } 将是 elseif() 如果使用 {} 然后它的 else if () (无论如何根据 php 网站)在我个人看来,如果应该始终使用大括号运行,则更容易read and see closes 等,因为大多数 ide 都有大括号突出显示。
    • 我同意应该始终使用大括号。 IDE 通常具有突出显示功能。由于许多人不使用它们谁知道,人们可能仍在使用记事本loool进行编码
    【解决方案3】:

    基本语法错误?在执行 else if 时,您不能使用非花括号短 if

     if (++$i == 5)  {
       break;
     } else if ($i == 0) {
       echo '<img src="img/no-vac.png"/>';
     }
    

    请注意与您的相比,此块上突出显示的颜色

    【讨论】:

    • 真的吗?告诉我目前正在做的事情中的 220 万行代码。
    • 两者都工作得很好不知道你在哪里看到 elseif 需要组合成一个单词它不需要
    • 对不起,我刚读了它,我猜愚蠢的 PHP 为了简单起见又做了另一个不一致NOT
    • 在 foreach 上也注意到语法错误,应该在 if 语句之前关闭它,现在可以正常工作了。
    • 那里。是。不,语法错误。除了良好实践的问题,如果您使用单个语句,则该大括号块是完全可选的。如果有语法错误,PHP 会抛出错误。单独使用 Elseif 是没有意义的。
    【解决方案4】:

    这是工作结果,感谢您的帮助!

    $i = 0;
    foreach($arrJobs as $job)
    {
        echo "<div class=\"job-ind\">\n";
        echo '<p><a href="' . $job->url . '">' . $job->title . ', ' . $job->location . "</a></p>\n";
        echo '<p class="smaller">Reference: ' . $job->reference . "</p>\n";
        echo '<p><strong>' . $job->salary . "</strong></p>\n";
        echo "</div>\n";
        }
    
        if ($i = 0) {
            echo "<div class=\"job-ind\">\n";
            echo '<img src="img/no-vac.png"/>';
            echo "</div>\n";
        }
    
        else if (++$i == 5) {
            break;   
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 2013-01-26
      • 2020-07-18
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      相关资源
      最近更新 更多