ZAPAnet総合情報局 > ZAPAブログ2.0 > 実際に買って読んだPHPの参考書レビュー

実際に買って読んだPHPの参考書レビュー

2007年05月02日 プログラミングTIPS
初めて学ぶWebプログラミング言語は何が良い?」に続いて、実際に買って読んだPHPの参考書のレビューを載せておきます。
読んでいない本のレビューをすることはできないので、実際に買って読んだ以下6冊のPHPの参考書のレビューにプラスして、PDFでダウンロードできる本、Webマニュアルのレビューを書きました。

PHPについて全く知らない状態から、参考書を買って独学で学んでいった時系列順に沿って書きました。
個人的な意見も含まれていますが、一人のレビュアーが複数のPHPの参考書レビューを載せているページはあまりないと思いますので、少しでも参考にしてもらえれば幸いです。

A.まずはじめに。プログラミング参考書購入について

プログラム系の参考書は1冊当たり3000円程度します。
昔は、他の一般的な本に比べて高すぎるので買うのをためらったりしてる時期もありましたが、最近では気になった本はすぐにAmazonで注文しています。
「本なんて買わなくても、インターネットで探せば十分!」
と思っている人も多いと思います。
しかし、インターネットの情報は断片的であることが多く、体系的に学ぶにはやはり1冊の本を通して読んだ方が効率的で、結果的に時間の短縮になります。

自分が1時間当たりに消費する時間がいくらに当たるかを計算すると、本を購入するかどうかの目安が立てやすくなります。
例えば1時間当たり1000円の価値がある人なら、参考書を購入したことにより結果的に3時間以上の時間短縮につながればプラスになったことになります。
3000円の価値がある人なら、たった1時間短縮できればプラスになります。
逆に100円程度の価値の人なら、30時間以上短縮できないといけないので、ネットでゆっくり検索しながら学ぶのもありだと思います。

本を読んだ後にできあがった成果物の出来映えを判断基準にしないで、勉強時間・開発期間の短縮に目を向けるところがポイントです。
「時は金なり」ですからね。

それでは、PHP参考書のレビューに移りたいと思います。

B-1.基礎PHP

改訂新版 基礎PHP
WINGSプロジェクト
インプレス
2004-09-22

by [Z]ZAPAnetサーチ2.0
一番最初に購入したPHPの参考書は、「基礎PHP」です。(改訂前のバージョンですが)
後述する「PHP4徹底攻略」とどちらにしようか迷いましたが、PHP4徹底攻略は2冊セットで揃えると約8000円もかかってしまうので、安さと「基礎」という言葉にひかれて「基礎PHP」を購入しました。

初心者向けに書かれているだけあって、PHPの各種文法(変数、式、方、配列、定数、クラス、関数、演算子、制御構造、ファイル処理)が丁寧に解説されています。
サーバーとクライアント間でのデータのやり取りなどの解説もあります。

ですが、問題は初心者向けの解説が終わった後からです。
いきなりMySQLを使ったデータベースアプリケーション作成の解説が始まり、DBとクラスを利用した掲示板の作成、smartyを使ったスケジュール管理アプリケーション作成にまで進んでいきます。
初心者向けの参考書だったはずが、「DB、クラス、掲示板、テンプレートシステム」まで飛躍してしまっているため、初心者には理解に苦しむ仕上がりとなってしまっています。
最後まで読み終えてみて、「正直どれも中途半端…」だと思ってしまいました。
PHPの各種文法や簡単なWebアプリケーション作成までに絞って解説すればもっと良い本になると思いました。

基礎PHP
評価:☆☆☆
コメント:初心者向けだが、後半一気に難しくなる。全体的に中途半端感も漂う。


B-2.PHP5であなたもウェブアプリが作れる!

PHP5であなたもウェブアプリが作れる!
川井 義治
ソフトバンククリエイティブ
2004-11-30

by [Z]ZAPAnetサーチ2.0
基礎PHP」が中途半端だったため、次に購入したのはPHP5用のウェブアプリが作成できる参考書です。
まだPHP5があまり普及していない頃だったため、内容にも興味がありました。

PHP5であなたもウェブアプリが作れる!」では、アクセスカウンタ、cookie処理、画像作成・表示、写真読み込み・表示、アンケートシステム、簡単日記、パスワード管理、スケジュール帳、アクセスログ、ブログシステム作成と一般的に使いそうなウェブアプリの解説が載っています。
ページが見やすく、説明も丁寧なため、PHPの勉強に役立ちます。
最後の方は、SQLiteとSmartyを使ったブログシステムの構築まで載っていますが、クラス設計、DBの知識、テンプレートシステムの知識が必要なため、若干難度が上がります。

自分でもこの本を多少参考にしながら、オリジナルのブログシステムの作成をしてみたことがあります。
ブログエントリを投稿して表示させるくらいまでは一応作りましたが、コメントの受付、Pingの送信、トラックバックの送受信、RSSの作成、DB設計などが面倒になって結局完成には至りませんでした。
PHPでのウェブアプリのことを勉強しながら、DBの勉強、XMLの勉強、Smartyの勉強などが絡み合うと、成果が見えるまでに時間がかかってしまうため、途中で終わってしまう危険性が高くなります。
欲張らず、一歩ずつ勉強していった方が良いですね。

その後、Nucleusを設置してライブドアブログから移転し、さらにNucleusを半分やめて、100倍速を実現しました
DBについてもある程度わかってきていたのと、Smartyなどのテンプレートシステムを利用しないことで、ある程度簡単にNucleusを改良することができました。

PHP5であなたもウェブアプリが作れる!」は、PHPを使ってどのようにウェブアプリを作成するのか勉強したいときにはとても役立つと思いました。

PHP5であなたもウェブアプリが作れる!
評価:☆☆☆☆
コメント:PHPを使ったウェブアプリ作成の手順を学びたいときに最適。初級者から中級者を目指す人向け。他の言語をマスターしている人が、PHPの構文などについてだけ学びたいときには、あまり向いていない。


B-3.PHP5本格派―PHP5で始めるWebアプリケーション構築ガイド

PHP5本格派―PHP5で始めるWebアプリケーション構築ガイド
qnote
毎日コミュニケーションズ
2005-01

by [Z]ZAPAnetサーチ2.0
Amazonのユーズド商品で、ある程度安かったので購入してみました。
ですが、残念ながら何の役にも立ちませんでした…。
本格派のPHP5解説本ということですが、各章ごとに解説が断片的で、「う〜ん」という感じでした。
新品で買わないで良かったと思いました。

PHP5本格派―PHP5で始めるWebアプリケーション構築ガイド
評価:
コメント:個人的には全くおすすめできない本です。Amazonでの評価は高いので、役に立つ人には役に立つのかもしれません…。


B-4.PEAR入門

PEAR入門 PHP標準ライブラリを極める!
山田 祥寛
翔泳社
2005-09-09

by [Z]ZAPAnetサーチ2.0
PHPで利用できるライブラリ(パッケージ)として有名で一般的なPEAR。
最初、「PEAR」は「ピアー」だとばかり思っていましたが、この本を買って初めて「ペアー」だと知りました。
PEARにはどんなライブラリがあって、どのように利用するのか理解でき、Webアプリ作成の手助けになるとばかり思っていたのですが…。

この本に書かれているとおりPEAR::Authという認証用のライブラリについて勉強し、実際にSQLiteで動作するサンプルプログラムを作ってみました。
ところが、PEAR::Auth側にバグがあって、まともにログインさえできないシステムができあがりました。
PEAR::Authのソースコードを読んで、バグの原因を調べたところ、DB処理の部分で余計な文字列が入ってうまくいっていなかったので、自分で修正してみたところ動くようになりました。
Webアプリのログイン部分にこんなバギーなライブラリは使えないと思って利用はやめました。

次に、PEAR::HTML_QuickFormも試してみました。
本に「ラクラクフォーム作成」と書かれている割には、混雑したプログラミングが必要だということがわかりました。

PEAR::DBについても書かれていますが、PHP5ではPDOを使った方が速くて便利です。(PDO、PEAR::DB、MySQL関数の速度比較参照)

PEAR::XML_RSS(簡易RSSリーダー参照)やPEAR::Cache_Lite(ゲーム最新情報参照)は便利ですが、この本を読まなくても簡単にわかる程度のライブラリなので、最新のWebマニュアルを見た方が良いと思いました。

PEAR入門
評価:☆☆
コメント:PEARのライブラリは更新が早い部分もあるので、最新のWebマニュアルを見た方が良い。思っていたよりもPEARの各ライブラリの完成度が低いと感じたため、PEARに頼らないで自分でコーディングした方が良いかもしれない。


B-5.PHP Hacks―プロが教えるWebプログラミングテクニック

PHP Hacks―プロが教えるWebプログラミングテクニック
ジャック ヘリントン
オライリージャパン
2006-06

by [Z]ZAPAnetサーチ2.0
だんだんPHPのこともわかってきたので、もう少しPHPについて勉強してみようかと思い、「PHP Hacks」を買ってみました。(今年の話)
オライリーの本だし、「Hacks」と付いているくらいだから、それはそれは素晴らしいテクニックが掲載されているだろうと思っていました…。

内容は、DHTML、データベース、XML、アプリケーション設計、デザインパターン、アプリケーションテストなどです。
各TIPSが合計100本近く掲載されています。

読み終えてみて、「Hacksという割には一般的な内容が多かったな…」という感想を持ちました。
よく知られているテクニックや、ただPEARライブラリを利用しただけのテクニック解説もあります。
「Wikiの構文をサポートする」などの興味を持てそうな節もありますが、「日本語には対応していません」と書かれていたり、日本人が扱うにはやや中途半端な部分もあります。
テクニックを紹介しているだけなので、サンプルコードをそのまま使うと危険な部分もあります。(GETで取得した値をそのまま表示したりしています。上級者を対象にしているため、いちいち書いていないせいだとは思いますが、そのまま利用してしまうのは危険です)

この本で一番参考になるのは、「目次」です。
「PHPでこんなことができるんだ!」と気付くだけで価値があると思います。
後は自分で考えるか、インターネットで調べれば実装方法などはわかりそうなものです。
目次」を見て参考にしたい節がたくさんある人、ネットで調べてもわからない人、まとめてテクニックを読みたい人にはオススメできると思います。

PHP Hacks―プロが教えるWebプログラミングテクニック
評価:☆☆☆
コメント:PHPのテクニックを学べる本。一般的なテクニックも多く、実際に参考にできる部分はあまり多くないかもしれない。「目次」を見て参考にしたい節がたくさんある人、ネットで調べてもわからない人、まとめてテクニックを読みたい人にはオススメ。


B-6.PHPによるWebアプリケーションスーパーサンプル

PHPによるWebアプリケーションスーパーサンプル 第2版
西沢 直木
ソフトバンククリエイティブ
2006-03-24

by [Z]ZAPAnetサーチ2.0
今年の3月に購入したのが、この「PHPによるWebアプリケーションスーパーサンプル」。
買った理由は簡単で、「書店で手にとってみたら、やたら分厚かったから」。
この記事の一番上の写真では少しわかりにくいかもしれませんが、他の本の2倍以上あります。
本の存在自体は知っていましたが、「いまさら基本のサンプルを学ぶなんて…」と思って買っていませんでした。

この前、PHPプログラムを始めてみたい、難しいと思っている人の為にでこの本が紹介された時は、自分でも納得してしまいました。
それくらい、この本は素晴らしい仕上がりになっています。
今まで何冊もPHPの参考書を読んできましたが、間違いなく「PHPによるWebアプリケーションスーパーサンプル」が一番でした!
章ごとに分けられたページ構成、内容が丁寧、ページが見やすい、全420本のサンプルコード付きで至れり尽くせりの内容です。
最初に50ページくらい、初心者向けのプログラミング言語としての解説が加わっていたとしたら、プログラミングを知らない初心者から上級者にまで勧められる完璧な本になっていたと思います。
(実際はプログラミング言語の解説としては不十分な部分もあるため、ある程度プログラミングの知識がないと少し辛いと思います)

本としてとても読みやすい構成になっているため、700ページ以上あってもすらすらと読んでいけます。
一度ざっくりと目を通してPHPで何ができるかを学んだ後、あとは逆引きで必要になった機能を調べるという使い方がオススメです。
一応、自分でもこの本を読んだ成果として、いくつかプログラムを書いています。

「9-1.PDFファイルを使用する」という節を読んで、PHPでPDFファイルを作成できることがわかったので、早速サンプルプログラムを作ってみようとしたところ…
この本で紹介されていた「PDFlib」というライブラリが有料であることがわかりました…。
仕方なく、フリーのPDF作成ライブラリがないかどうかを調べて「FPDF」を探し出し、完成したWebアプリが「超かんたんPDF作成!」です。(超かんたんPDF作成!作りました参照)
PDFアプリを作ろうと気付かせてくれた部分で、この本が微妙に役に立ちました。

あとは、「9-7.グラフを出力する」という節を読んで、PHPでグラフを作成できることがわかったので、早速サンプルプログラムを作ってみようとしたところ…
この本で紹介されていた「JpGraph」というライブラリが有料であることがわかりました…。
仕方なく、自分で円グラフ作成方法を考えて、完成したWebアプリが「超かんたん3D円グラフ作成!」です。(超かんたん3D円グラフ作成!作りました3D円グラフを作る上で苦労したこと、捨てたものなど参照)
グラフ作成アプリを作ろうと気付かせてくれた部分で、この本が微妙に役に立ちました。
円グラフ流行の流れに乗り、べつやくメソッド用円グラフ作成サービスの一つになることができました。

PHPによるWebアプリケーションスーパーサンプル
評価:☆☆☆☆☆
コメント:「PHPを勉強したいのであれば、まずは買っておけ」と言い切ってしまっても良いくらいの良解説書。勉強用にも逆引きのリファレンスとしても使えて便利。



C-1.PHP4徹底攻略

PHP4徹底攻略―Web DBプログラミング徹底入門 [改訂版]
堀田 倫英
ソフトバンククリエイティブ
2002-09

by [Z]ZAPAnetサーチ2.0
PHP4徹底攻略 実戦編―実践的Webアプリケーション開発技法
広川 類
ソフトバンククリエイティブ
2002-03

by [Z]ZAPAnetサーチ2.0
一番最初に「基礎PHP」とどちらを購入しようか迷ったのが、この「PHP4徹底攻略」です。
通称「マンモス本」と呼ばれていたPHP4のバイブル的存在でした。

とある時期からWeb上でPHP4徹底攻略PDF版が公開され始めたため、ダウンロードして読みました。
「第一部 PHPをはじめよう」だけでもPHPを学ぶのには良いと思います。
PHP4向けで少し古くなってしまっていますが、無料で読めるのはすごいことだと思います。

最新PHP5版も販売されています。
PHP5徹底攻略
堀田 倫英
ソフトバンククリエイティブ
2004-10

by [Z]ZAPAnetサーチ2.0

PHP4徹底攻略
評価:☆☆☆☆
コメント:無料で読めるPHP4徹底攻略PDF版が便利。PHPについての初歩的なことなどはこのPDFで理解できる。昔はマンモス本としてPHPのバイブル的存在だった。


C-2.PHP マニュアル

PHP マニュアル
the PHP Documentation Group
1997-2007
実は、一番勉強になって、一番最新で、一番参考になるのは「PHP: PHP マニュアル - Manual」です。
PHPのインストール、設定、言語リファレンス、機能、関数リファレンスなどが全て網羅されています。
公式サイトでは重くやや読みづらかったので、自分でスタイルシートを設定してコンパイルしたものを「PHP マニュアル」に置いてあります。
PHP関数の使い方はこのマニュアルを読めば、サンプルコード付きでばっちりわかります。
超かんたん3D円グラフ作成!の時にもイメージ関数(image)のページを読んで勉強しました。

PHPの実行環境だけでなく、マニュアルまで整備され、日本語に翻訳され、しかも全て無料で本当に感謝しています。
Webマニュアルを読むだけで、PHPが勉強できるということはあまり一般に知られていないようなので(自分も最初は知りませんでした)、知らなかった人は「PHP マニュアル」の存在を覚えておくと良いと思います。
マニュアルを読んでわからないことがあれば、あとはGoogleを使って検索するか、はてなやOKWAVEなどで質問すれば大体解決します。

PHP マニュアル
評価:☆☆☆☆☆
コメント:Web上で無料で読めるPHPマニュアル。PHPの設定やインストールを始め、構文解説や関数リファレンスなどの最新版を読むことができる。このマニュアルさえあれば、PHPの参考書は必要ないかも?


D.最後に

以上、今まで実際に買って読んだ6冊のPHPの参考書レビューと、PDFでダウンロードできる本、Webマニュアルのレビューを書きました。
どの本もある程度プログラムについてわかっていることが前提となっているところが、多少残念なところです。
結局のところ、本当のプログラム初心者がいきなりPHPを始めるのに適した本はまだ無いのかもしれません。

変数、配列、データ型、制御文、演算子、関数などについて良くわかっていないのであれば、他のプログラミング言語入門を参考にした方が良いと思います。
自分はC言語の新・C言語入門 シニア編(の少し古いバージョン)でプログラミングについて学びました。
新・C言語入門 シニア編
林 晴比古
ソフトバンククリエイティブ
2004-02

by [Z]ZAPAnetサーチ2.0
最初は、
「変数って何?」
「型って何?」
「a=a+1ってどういうこと?」
「配列って何?」
「条件分岐って何?」
「ポインタって何?」
「構造体って何?」
などと悩む部分はたくさんありますが、その辺は努力と気合いでカバーするしかありません。
文系でも理系でも学歴があろうと無かろうと、プログラミング能力にはあまり関係ないものです。
興味のある方は、初めて学ぶWebプログラミング言語は何が良い?にも書いたように、まずは何かしらのプログラミング言語の勉強を始めてみるのが良いと思います。

PHPはC言語に似ていますが、型宣言、ポインタなどの初心者がつまづきやすい部分を気にしなくてもプログラムすることができるので、比較的学びやすい言語です。
初心者が学ぶのに適した参考書が無いのは残念ですが、無料のPHP4徹底攻略PDF版PHP マニュアルを読みつつ、興味を持ったらPHPによるWebアプリケーションスーパーサンプルを購入してみるのが良いと思います。


関連リンク

初めて学ぶWebプログラミング言語は何が良い?
PHP5.2.0とeAcceleratorのインストールメモ
XCacheのインストールとphp用アクセラレータ比較
Zend Optimizerインストールメモ
あるWebプログラマーの作業環境――豪傑の三種の神器
ファイルを圧縮するmod_deflateの効果
RPC.phpのバグ
PEARのアップグレードメモ
ゲーム最新情報(PEAR::Cache_Lite)
簡易RSSリーダー(PEAR::XML_RSS)