0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPの改善してほしいところ:未定義変数の参照、echo

Posted at

最近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>");

上記のコードを実行すると以下のように出力される。

&lt;div&gt;aho&lt;/div&gt;

これはタグの<>などがエスケープされている。
XSSを防ぐための出力である。

だが、これは標準でechoやprintfなどに実装してほしかった。
つまり標準でエスケープしてほしかったところである。

<?php
echo "<div>aho</div>";

と書いて、

&lt;div&gt;aho&lt;/div&gt;

と出力されてほしかった。
このエスケープ方法はグローバルな設定などで変更できるようにして、エスケープしない出力は専用の関数などを使う必要がある、とかのほうが良かった。

<?php
unsafe_echo "<div>aho</div>";

つまり上記のような感じである。

PHPで気になる点は私はこれぐらいである。
この記事を読んでかつ次世代インタプリタを開発する人は、これらを改善した次世代言語を作ってもらいたいところだ。

おわり

0
0
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?