最近PHPをよく使うので、PHPに改善してほしいところを書いてみる。
まず「未定義変数の参照」である。
<?php
echo $aho;
上記のコードを実行すると
PHP Warning: Undefined variable $aho in a.php on line 2
という警告が出力される。
だがこれはエラーにしてほしかった。
未定義変数を参照してもエラーにならないと、タイポした変数がそのまま使われ、バグになることが多い。
そのためこの仕様は改善してほしいと思う(次世代言語で)。
PHPは評判が悪かったのでどんなもんかと思って使いだしたが、意外と良い言語である。
Webアプリを大変作りやすい。個人的にはPythonより作りやすいと思う。
だが改善してほしいところはまだある。
それが「デフォルト出力のエスケープ」である。
<?php
echo htmlspecialchars("<div>aho</div>");
上記のコードを実行すると以下のように出力される。
<div>aho</div>
これはタグの<>
などがエスケープされている。
XSSを防ぐための出力である。
だが、これは標準でechoやprintfなどに実装してほしかった。
つまり標準でエスケープしてほしかったところである。
<?php
echo "<div>aho</div>";
と書いて、
<div>aho</div>
と出力されてほしかった。
このエスケープ方法はグローバルな設定などで変更できるようにして、エスケープしない出力は専用の関数などを使う必要がある、とかのほうが良かった。
<?php
unsafe_echo "<div>aho</div>";
つまり上記のような感じである。
PHPで気になる点は私はこれぐらいである。
この記事を読んでかつ次世代インタプリタを開発する人は、これらを改善した次世代言語を作ってもらいたいところだ。
おわり