Strings of Life

PHP/Phalcon/MySQL/JavaScript/RegExp/Ruby/Perl/ActionScript

タグ:山田祥寛

独習PHP 第2版
独習PHP 第2版

PHP5は、本格的なオブジェクト指向の構文を備えたプログラミング言語です。しかし、PHPの書籍には、オブジェクト指向を初歩から解説したものが少ない。

よくわかるPHPの教科書』『初めてのPHP5 増補改訂版』等の入門書では、「オブジェクト指向というものが存在する」という程度で終わり。一方、『プロになるための PHPプログラミング入門』や『パーフェクトPHP』のような中級レベルの書籍では、オブジェクト指向については理解しているのを前提に話が進んだりします。

(『パーフェクトPHP』には「PHPのオブジェクト指向構文はこうなっている」という解説は載っていますが、オブジェクト指向を初歩から学べるわけではありません)

私の知る限り、(1)PHP5.3(名前空間等)に対応 (2)オブジェクト指向を基礎から解説している という条件を満たす和書は本書だけです。初歩的なオブジェクト指向の解説は『やさしいPHP 第2版』にも載っていますが、インターフェースやマジックメソッドまで載っているのは『独習PHP 第2版』だけ。


そういうオンリーワンな価値を持つ書籍なのですが、いくつかイケてない部分もあります。

(1) Windows環境を前提とした記述

Linux向けの解説も併記されています。が、PHPでの開発ならLinuxを前提とすべきでしょう。VirtualBox等を使えば、Linux環境の構築はさほど難しくありません。

(2) サンプルが退屈

チュートリアル形式の、アプリを作る過程で学ぶ本ではなく、構文単位で小さなサンプルを動かして学ぶ形式です。小さなサンプルがダメってことはないのですが、さすがに500ページもあるとダレます。

(3) ベストプラクティスから外れていることがある

例えば、クラスのオートローダーは本書では__autoload()で実装していますが、spl_autoload系の関数の方が高機能です。もっとも、明らかなバッドプラクティス(例えば、文字列連結によるSQL組み立て)はないと思います。

(4) 若干古い

2010年4月に出た本なので。とはいえ、5.3に対応しているので、致命的に古い部分はないと思います。


オブジェクト指向を初歩から学びたいPHPerにはオススメです。オブジェクト指向の章だけ(第7章と第10章)読むとか、目次を見て知らないところだけ読んでいく、といった読み方でも良いと思います。

日経ソフトウエア2012年6月号に、興味深い記事があったので、要旨をまとめておきます。著者は、『JavaScript本格入門』等の著書がある山田祥寛氏。

  1. var命令による変数宣言は省略しない ∵var命令で宣言しなかった変数はすべてグローバル変数と見なされる
  2. 比較演算子の「==」は使わず、「===」を使う ∵厳密な比較が出来ない
  3. 配列の生成にはリテラルを使う リテラルとは:var ary = [-5, 0, 5]のような記法 理由:意図しない形での配列の生成を防ぐため
  4. 中括弧は省略しない ∵条件が入り組むと、対応関係がわかりづらくバグの温床となる
  5. 文の途中の改行に要注意

どこかで見たような内容もありますが、コーディングスタイルは書いているときに楽な形に偏りがちなので、定期的に見直すのが良いと思います。

他に、JavaScript高速化の方法も載ってましたが、「<script>要素は</body>と</html>の間に置く」「コードを圧縮する」「例外処理は出来るだけ書かない」「eval()は使わない」等の、これまたどこかで見たような内容。

『日経ソフトウェア』、プログラミング初級者向けの雑誌という位置づけですが、C語族+Javaと、JavaScriptと、スマホアプリの入門記事が入り交じっていてカオスです。

触りすらしない「眺めるだけ」の解説も多く(例えばCoffee Scriptは、「こんなものがあるんだよ」という紹介程度)、手元に置きたい記事はありませんでしたが、図書館で眺める分には良い雑誌だと思います。

このページのトップヘ