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

"進藤寿則 (Shindo)" shindo @ atsystem.jp
2003年 6月 24日 (火) 17:24:17 JST


アットシステム進藤です。こんにちは。

完全にオフトピックになります。
>重松です。こんにちは。
>
>> case 部には整定数しか許されないCで育った人間には、絶句です。
>
>見た目は C の switch 構文にそっくりですが、動作原理がまったく違う
>(と思う) ので、問題ないでしょう。だって、PHP は C でないのだから。 :)

ただ、どんな言語でもそうですが、その構文をサポートする”訳”は
そうそう違わないと思います。
分岐処理は、if だけあれば基本的に困らないのですが、式の評価結果で
多重に分岐するときに使い易い文が switch 文として作られたと思います。

Cで整定数しか許されなかったのが、PHPでは浮動小数や文字列にまで拡張
されたのは問題ないと思いますが、”使い方”を大きく変える場合には
別の構文を創り出すべきだと思います。

PHPのマニュアルでも
> case式は、スカラー型に式を評価する 任意の式、つまり、整数、
> 浮動小数点、文字列とすることができます。 配列又はオブジェクトは、
> 単純な型にキャストされていない限り 使用することができません。
と記述されていますから
case式は、定数式を記述するのが一般的な使い方だと思います。
(定数に限定しろとは言いませんが)

>
>まあ、他の方も多数突っ込まれてますが、たまには変な (失礼)、
>別の言い方をすると縛られてない方の発想は面白いですね。
>おかげで新しい書き方を発見しました。
>役に立つかどうかは別として。 :-P
>
>ただ、このあたり、Modern C++ Design の Loki にしても、
>本来、誰も思いつかなかった妙技で、さまざまな問題に対処するのをみて、
>PHP でも、うまい書き方がないのか、模索するものまた楽しいと感じます。
>
新しい書き方が、効率や可読性を向上させるならば賛成です。
でも、そうでないならば、可読性を優先して素直なコードを書く事が
プログラマには要求されると思います。
トリッキーなコードを書いて後で困るのは自分だったりします。

今回の場合は、普通にif文を書くのが良いと思うのですが。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
                                 _/_/_/_/
  進藤寿則@アットシステム             _/_/
  e-mail shindo @ atsystem.jp             _/
  Tel 022-385-1593  Fax 022-385-1595   _/
                                      _/




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