PHPに文句を付けている dankogai 氏にひとこと言っておくか
<p>以下の環境変数が設定されています:</p> <pre> <?php while(list($k, $v) = each($_SERVER)){ echo "$k=$v\n"; } ?> </pre>
なにはともあれ、htmlspecialchars をいれたほうがいいと思う。
なんでもかんでもぶちこめば、やたら重いApacheが出来上がるし、かといっていろいろ削ればあとでユーザーに「なんでXMLが扱えないの?」とか突っ込まれることになる。
んー、よくわからないけど、configure のほとんどは単に外部ライブラリの binding をいれるかどうかだけで、symbol が増える程度な気が。mbstring なんかは別だけど。
なんでrequireとrequire_onceが分かれているのか、他の言語を知っている人にはさっぱりわからない。
まぁ、名前空間がないのは確かにあれな気がするが、Perl だって require と use があるじゃねーかとか。まぁ、PHP はさらに include と include_once があるけどな。
でも、いまだに Perl の carp/warn/croak の詳細を覚えていない自分がいる。
Mac OS Xには、PerlもRubyもPythonもOSリリース時点での安定版が載っているのに、PHPは4のまま。これはデフォルトでインストールされているのがApache 1.3.xということもあるのだろうけれども、これはAppleがPHPを言語としてではなくWebサーバーのコンポーネントとして見ていることを意味している。
ん?別に PHP5 + Apache 1.3.x という組み合わせは可能。ひとつの Web サーバで PHP4 と PHP5 を共存させることはできないから、PHP4 を選んだだけでは。
そう。PHPはバージョンの違いがあまりに大きいのだ。PHP4とPHP5の違いに至っては、Perl 5とPerl 6以上に見える。
いやー、これは贔屓めにみても Perl5/Perl6 の変更点のほうが大きいでしょう。
PHPというのは、Model, View, ControllerのViewのみしか扱えないことを宿命づけられた言語である。実際PHPのみで動いているWebサービスというのはほとんどなく、実際にはMySQLをはじめ、PHPのためのバックエンドプログラムが山のようにあり、PHPはそれを呼び出しているに過ぎない。
普通に MVC フレームワークとかあるけどね。というよりバックエンドを利用するのはほかの言語でも一緒だし、現在はテンプレートエンジンを使うのが主流なので HTML の埋め込み言語として使う場面は少なくなっている。
まあ自分も PHP はあまり好きではないんだけどね。