本「PHPはどのように動くのか」

 先日発売された本「PHPはどのように動くのか PHPコアから読み解く仕組みと定積」を読んだので下記にその概要と感想を明記します。

 まず、この本を発売している出版社による解説は以下の通りです。

同じようなスクリプトなのに,なぜパフォーマンスが違うのか?
オブジェクト指向だと,なぜ遅いのか?
PHP7は,なぜ速くなったか?
最も人気のあるWeb用プログラム言語であるPHPの知られざる内部構造を解説した,日本初の書。「メモリを節約したり,処理を軽くしたりするスクリプトを書くには」「パフォーマンスの高いExtensionを作るには」「Zend Engineをハックするには」といった,ほかにはない話題が満載です。

 この本を手にしてみると文章のボリュームはそれほど多くないのですが、この本を理解するためにはPHPの知識だけでは正直半分以上理解できないと思います。

 この本ではタイトルの通りPHPを動かしている仕組みを解説しています。そのPHPを動かしている言語は御存知の方もいらっしゃると思いますが、C言語で作られています。その為、この本の中ではPHPのスクリプトよりもC言語の内容の方が多く書かれています。

 また、この本では最小単位の命令である「オペコード」についても書かれているため、PHPだけを知っているユーザーがこの本を読んでも「?」が並ぶだけじゃないでしょうか。

 しかし、そんな方でも第2章の「オペコードのパフォーマンスを考える」ぐらいまでは個人差はあると思いますが、読んでいてもなんとなく理解できるかと思います。

 それと、以外と面白かったのが第1章の「スクリプトを比較する」という部分です。PHPでは同じ処理でも複数の書き方があったりします。例えば、比較する処理をする場合「if~else~」の書き方と三項演算子の書き方があります。どちらを使っても比較することはできるのですが、では、どちらの書き方の方が処理は速いでしょうか?秒数にすると100分の1秒以下と非常に短い時間の処理差なのですが、いざ書く時にどちらを使った方がいいかなどがわかって面白かったです。

 さらに第7章の「Zend Engineをハックする」ではPHPの動きそのものを変える方法が紹介されています。例えばプログラムを終了させる「exit」を改造して、exitを書いてもプログラムを終了させないというものです。たいした改造ではありませんが、PHPの動きを変えることができるというのは私にとって新鮮でした。けど、きっと使うことは多分ないと思いますが(笑)

 いずれにしても初心者にはちょっと難しい本だと思いますが、PHPをメーンに行っているプログラマなら手元に置いておいて後々理解できれば良い本かもしれません。興味のある人は手にしてみてはいかがでしょう。