2012-02-25 21 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)..