2012-02-25 24 views
-3

如果有任何的方式来写简捷代码,而不是这一个短切为(如果,和)statment

欲说,如果页面ID是1或2或3或4或5或6或7或8或9或10,则显示的东西,否则显示别的

<?PHP 
if ($page[id]==1 || $page[id]==2 || $page[id]==3 || $page[id]==4 || $page[id]==5 || $page[id]==6 || $page[id]==7 || $page[id]==8 || $page[id]==9 || $page[id]==10){ 

echo "something"; 

}else{ 

echo "something else"; 
} 

?> 

感谢 那会帮助我很多关于长的例子,因为这些ID号1,2,3 ......等

+0

使用'$页['id'];'< - 注意id周围的引号。不要让它不加引号。的 – 2012-02-25 12:47:49

+0

可能重复[我怎样才能限制数量的最大值?](http://stackoverflow.com/questions/9414851/how-can-i-limit-the-max-value-of-number) – Gordon 2012-02-25 13:01:25

回答

4

你可以做

<?PHP 
if ($page['id'] >=1 && $page['id'] <=10){ 

    echo "something"; 

}else{ 

    echo "something else"; 
} 
+0

嗯,非常好的想法使用> =和<= :)〜非常感谢它会帮助我很多,而不是重复|| 100个ID。 – 2012-02-25 12:41:38

+0

请注意,这也将评估任何浮标的第一个块,例如3.14将是“某事”。在旁注中,它应该是$ page ['id']。插值时,数组键可能只能用引号写入。除非ID具有鸭舌定义为一个常数(如果没有,PHP将其视为一个常量并发出警告,如果我记得很清楚) – Gordon 2012-02-25 12:58:29

+0

@Gordon这是真的 – 2012-02-25 13:07:13

2

可以使用in_array

if (in_array($page['id'], array(1,2,3,4,5,6,7,8,9,10))) 
{ 
    echo "something"; 
} 
else 
{ 
    echo "something else"; 
} 
3

在这种情况下,你可以使用usally到in_array()变量对值列表进行比较。你的情况,你可以像这样用range()结合它(如果它是一个简短的连续数字列表):

if (in_array($page[id], range(1,8))) { 

注意$page[id]大概应该是$page["id"]

1
if($page['id'] > 0 and $page['id'] < 11) { 
    echo 'something'; 
} 
1

您可以使用三元操作如下

echo ($page[id] >=1 && $page[id] <=10)?"something":"something else"; 

你也可以使用in_array做类似的条件

+1

为什么要将它从if语句转换为三元? – Treffynnon 2012-02-25 12:43:00

+1

我正在强调一种方法。显示另一种方法是不好的。它的一个班轮,结构紧凑,但可以慢一点我同意 – 2012-02-25 12:44:03

+0

这并不差 - 我没有其他建议。虽然有一行确实会使其缩短 - 但它也显着降低了可读性。我不担心任何微速优化。 – Treffynnon 2012-02-25 12:53:50

0

你可以只使用一个if条件像if($page[id]>=1 && $page[id]<=10)..