【最大10000ポイント】当たる!!質問投稿キャンペーン!

変数の範囲によって場合わけしたいのですが、switchで可能でしょうか?あるいは、ifでないとだめでしょうか?やりたいのは、変数を$aとすると、
0<a<1 なら、処理1
1<a<2 なら、処理2
というのが10個くらいあります。ifだと長くなるのでできればswitchでやりたいのですが、可能でしょうか?条件をどうやって書けばいいのでしょうか?リファレンスを見ても乗っていませんでした・・

<?php
switch ($a) {
case (0<$a<1):
処理1;
case (1<$a<2):
処理2;



}
?>
という書き方はできるのでしょうか?あるいは不可なら、簡単な方法はあるでしょうか?

A 回答 (3件)

switchを使うなら、こんな感じか。



switch(true){
case $a<0:
break;
case $a<1:
"0<=$a<1の時の処理";
break;
case $a<2:
"1<=$a<2の時の処理";
break;
。。。。。

ifとどっちが良いか。。。。

if($a<0){
}else if($a<1){
"0<=$a<1の時の処理";
}else if($a<2){
"1<=$a<2の時の処理";
}。。。。。
    • good
    • 0

式という物は


右辺と左辺が一つずつある必要があります。
そういう物なので、
そういう形式になるように書き直すとこんな感じです
case (( 0 < $a )&&( $a < 1 )):

それとbreak;でちゃんと止めておかないと
想定外のエラーが出てくる事があるので、
少し注意が必要かと思います。
    • good
    • 0

できないことはないですが、結局ifでやっているのと大差ないようにみえますが・・・



<?
$a=1.5;
switch ($a) {
case 0<=$a and $a<1:
print "0-1";
break;
case 1<=$a and $a<2:
print "1-2";
break;
default:
print "out of range";
break;
}
?>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング