カテゴリ: PHP
記事投稿日: 2017年6月2日
PHP を早く書くための基本として、型を明示的にすること、あいまいな判定はしないこと、があげられると思います。
あいまいな判定でいうと、
=== ではなく、== と書く。
または、 !== ではなく、 != と書く。
あいまいな書き方は、「型変換」を自動で行ってくれるという、一見、メリットがあるように見えるのですが、これは NG です。
型変換という処理が入るだけ、パフォーマンスは悪くなります。
先日耳にしたのですが、日本最大規模の、ある予約サイトでのこと。
ある処理であいまいな書き方をやめたら、それだけでパフォーマンスが倍近く改善された、とのこと…。
大規模な開発になるほど、こうした小さな配慮が顕著に出てくるので、驚き、また認識が浅かった点、大いに反省しました。
元々、あいまいな書き方は嫌いなので、自分のコードはしっかり型を意識していましたが、チーム内のメンバーがあいまいな書き方をしている場合、どうしてそれが悪いのか、自信をもっては言えなかったのです。
これからは、パフォーマンスが悪くなるということで、自信をもって説得できます。
データベースのカラムの初期値として、Null や空文字を指定されていることは多いと思います。
その場合、市販の初心者向けの教科書などでは、 !$hoge[‘name’] みたいに判定しているのをよく見かけます。
型を気にすると、この ! もあいまいな判定なので、結構気持ち悪くなってきます…。
また、データベースで何か不具合が起こった場合、通常は例外処理で対応できますが、そうでない場合、上記の例でいうと、!$hoge[‘name’] は Undefined index となり、未定義エラーが出てしまいます。
! チェックは、あいまいな判定の処理のひとつで、パフォーマンスも悪いですし、何かの時の未定義エラーに対応できません。
empty なら、NULL, 空文字, 未定義 に対応できるので一番安全です。
ちなみに、empty は関数のオーバーヘッドがあるため、明示的に空文字を比較すると分かっているなら、 === を使った方が早いですので、どこに何を使うのかがベストなのかは、用途によって変わってきます。
あいまいな判定や、型変換について知識が深まると、何より他人に自信をもってコードの説明ができます。
こういったことは、忙しい日々の作業からはなかなかつかめないので、時間のある時に自分でテキストを見たり、検証することはやっぱり大切だと思います。
コメントを残す