PAK86_smonitatocode20140517500

 プログラムを書いたことがある方なら「条件分岐」は必ず使うことでしょう。それがIF文であったりSwitch、Select文であったりと言語などによって種類や書き方の違いはあると思いますが、必ず使う物だと思います。

 その条件分岐についてPHPを中心にいろいろと見つけたので下記に明記しておきます。もしよければ暇つぶしにでもどうぞ。

 先日、ネットの記事をいろいろと眺めていたらこのようなツイートが見つかりました。

Twitter / vjroba: 世界一IQの低いソースコードはこれ。吉井博史著「基礎から学ぶ …

 プログラムによっては条件分岐にいくつものIF文を使って書いているサイトはありますが、入門書にこのようなIF文を4ページ半も書き続けているのは見たことがありません。ちなみにのその本というのはこちらの本のようです。

 もし、PHPでこのようなIF文で条件分岐を使うのであればSwitch文を使ってまとめるのが一般的かと思います。

 その様に思っていたら、今度は下記のような記事が見つかりました。

switch文を使ってはいけない – 泥のように

 この記事の最初の段落で「switch文を使ってはいけない」と書かれているのを見て、先ほどはSwitch文を使えといったのが違うじゃないか!と思います。この理由は冒頭に書かれているとおり

PHPのswitch文は悪名高い「==」演算子で比較を行います。

というのが問題ですね。PHPの「==」は左右の値の比較を行いますが、型の比較は行いません。また、PHPの浮動小数点数の比較については注意が書かれています。PHPユーザーなら御存知かと思います。

PHP: 浮動小数点数 – Manual

 そんなこんなを読んでいたら、狙ったかのように下記の記事が飛び込んできました。

PHP 5.4.4から==の挙動が一段と難しくなりました – hnwの日記

 プログラムを書いていれば避けては通れない条件分岐。その条件分岐にこんなに注意しなければいけないことがあると「だからPHPは・・・」と言われちゃうんですよね。そんなPHPですが、私は好きですよ(^_-)-☆

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

価格¥2,640

順位744位

Dustin Boswell, Trevor Foucher

解説須藤 功平

翻訳角 征典

発行オライリージャパン

発売日2012/06/23

Amazonを開く

Supported by amazon Product Advertising API