switch( true )な使い方

switchについてちょこっと

今回はちょっと、脇道にそれて、Twitterで出た話題を取り上げます。

switch( true )な使い方

switch文は、switchに続く括弧に式を入れて、caseに書かれる結果によって処理を変えるという動きがポピュラーな使い方かと思いますが、逆に、switchに続く括弧に結果を入れ、caseに書かれる式によって処理を変えるということも可能です。

つまるところ、以下のような書き方が出来るということです。

上記のソースでは、変数$aに入っている値の型によって処理を変えるような判断をおこなっております。

試してみた

前述の方法で、CONTROL-AK様の「PHP でいわゆるオーバーロードを実装する」を実装してみました

やってることは基本的に変わらないです。むしろswitch文が入れ子になるので、余計見づらくなってるような気も・・・

あ、__call()は、PHPでのオーバーロードです。
同じ呼び方でも動きは全然違いますので、気をつけてください。

[追記 (2010/11/03 17:44)] 引数が無い場合の処理が抜けていましたので、修正致しました! @ctrlAK 様 ありがとう御座います!

今回は少なめですが

以上です。
前回の流れとは全然違う話をしてますが、こういう話はたまに挟んでいきますので、ご了承下さいませ。

ではまた。

コメントする

名前
 
  絵文字
 
 

このページの上部へ