2013-07-03 130 views
0

我写了一些很好的脚本,但我试图添加一个elseif语句,其中看起来完全没有什么,不知道我出错的地方。 (是的,我是一个PHP新手,但我想!:)elseif声明不起作用

$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语句完美的作品。 一定是简单的东西我失踪或误解!

回答

0

基本语法错误?如果是做一个否则,如果

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

通知该程序块的颜色高亮相比,你

+2

真的吗?告诉我目前正在处理的220万行代码。 – Dave

+0

当然,我知道这很愚蠢和简单!谢谢 –

+0

这两个工作都很好,不知道你在哪里看到elseif需要合并成一个单词,它不是 – Dave

4

$i永远不会0在这个位置的时候,你不能用短期支撑非。
您可以在测试前的if语句中增加它(++$i)。

+0

@MaximKumpan明显不是他说的我的“陷入语法迷惑”修复解决了他的问题 – Dave

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; 
+0

如果不使用{}然后它的其他if()(根据PHP网站反正)在我的个人意见如果应该总是用大括号运行使得阅读和看到关闭等更容易,因为大多数ide有大括号突出显示。 – Dave

+0

我同意应该总是使用大括号。 IDE的通常有突出特点。由于许多人不使用谁知道,人们可能仍然使用记事本编码进行编码 – user2497624

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