[PHP-users 16172]Re: case文での比較演算子について
A.K.I.
aki @ tetsuneko.com
2003年 6月 24日 (火) 14:39:26 JST
http://www.php.net/manual/ja/control-structures.switch.php
なんと日本語マニュアルのページのswitchのところににちゃんとif
との比較まで載ってます。当然このあたりは見た上での質問なのだ
ろうとは思うのですが、念のため。
正しく答えるなら
>switchのcase条件として、比較演算子を使用するのは不適切なのでしょうか?
この質問に対する答えは「caseは条件を書くモノではなく値を書くモノ
です。条件式の結果のtrue、falseがcaseの値として使われます」
という感じでしょうか。
>グラフを作成するためのy軸目盛をデータのmax値($x)をチェックして設定する構文で
>す。
>switch ($x) {
> case ($x <= 20):
> $kura_memori = 1;
> break;
> case ($x <= 100):
> $kura_memori = 5;
> break;
> default:
> $kura_memori = 1000;
>}
>
>$xに0が入ってきた場合に、無視されて、default:が実行されてしまうのですが、こ
>れは使用なのでしょうか?
これに関しては「無視されていません。$xの値が($x<=20)の値とも($x<=100)
の値とも異なるのでdefaultが処理されます」
といったところでしょうか。
ちなみにfalseは0、trueは0以外ということを併せて考えると、な
ぜ「$xに0が入ってきた場合に」といった条件が発生するのか理解
しやすいかな、と。
>if文ではちゃんと分岐してくれるのですが。
これは、同じ動きをすると思っているif文を示して頂けないと判断
できません。
PHP-users メーリングリストの案内