[PHP-users 16168]Re: case文での比較演算子について

Osamu Shigematsu m5issige @ mr.hitachi-medical.co.jp
2003年 6月 24日 (火) 14:22:13 JST


重松です。こんにちは。

> switch ($x) {
>   case ($x <= 20):
>     $kura_memori = 1;
>     break;
>   case ($x <= 100):
>     $kura_memori = 5;
>     break;
>   default:
>     $kura_memori = 1000;
> }

これだと、うまく行かないのではないですか?

if 構文では、

	if ($x === ($x <= 20)) {
		$kura_memori = 1;
	}
	else if ($x === ($x <= 100) {
		$kura_memori = 5;
	}
	else {
		$kura_memory = 1000;
	}

と同じで、1000 になるかと思います。
# === は == かもしれません。

なので、こんな間抜けな書き方はありかどうかわかりませんが、

	switch ($x) {

ではなくて、

	switch ($x === $x) {

とすればそれっぽく動く気がしますが、何かとてつもなく間抜けな気がします。

-- 
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>



PHP-users メーリングリストの案内