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には、PerlRubyPythonもOSリリース時点での安定版が載っているのに、PHPは4のまま。これはデフォルトでインストールされているのがApache 1.3.xということもあるのだろうけれども、これはApplePHPを言語としてではなく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 はあまり好きではないんだけどね。