0

我编写了一些效果很好的脚本,但是我尝试添加一个 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 语句中的所有内容都运行良好。一定是我遗漏或误解的简单事情!

4

4 回答 4

4

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

于 2013-07-03T08:54:23.930 回答
2

请注意,只有在使用大括号时才会认为 elseif 和 else if 完全相同。

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;
}

elseif对比else if

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

区别在于:

else if() {
}

转换为:

else {
    if(){
    }
}

并且不能在使用冒号的代码块中使用,如下所示:

 if:
   stuff
 else if()://won't work
   //stuff
 endif;
于 2013-07-03T08:54:27.163 回答
1

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

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

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

于 2013-07-03T08:54:11.027 回答
0

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

$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;   
    }
于 2013-07-03T09:04:58.580 回答