PHP マジック
自分の感性や既成概念を覆す、非常に奇怪なコードを目にする。
どんな悪質なコードでも保守を継続しなければならず、常に苦しめられている。
それらのことを「マジック」と呼ばれ恐れられている。
一例を挙げよう。
PHP には、定数を定義するための関数 define というものがある。
これにマジックを施し、独自に拡張しているように見せているコードがあった。
class define { function define($a, $b) { : } } define(NAME, "foo"); // 既存の関数 define new define(NAME, "bar"); // 新しく作ったクラス define
- "define" は予約語ではない。
- 関数名とクラス名は被ってもよい。
などが作用して、動いているようだ・・・。マジックとしか言いようがない。
(つづく)