gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

うわぁ諸刃…

あえて周りから。

<?php
rename_function('strlen', 'new_strlen');
override_function('strlen', '$string', 'return override_strlen($string);');

function override_strlen($string){
        return new_strlen($string); 
}

rename_function
(PECL apd:0.2-1.0.1)
rename_function ― グローバルの関数テーブルで関数名を変更する

override_function
(PECL apd:0.2-1.0.1)
override_function ― 組み込みの関数を上書きする

一応、擁護。
これらの関数の哲学は

Advanced PHP Debugger (APD)
導入

APD は進化した PHP デバッガです。PHP コードのプロファイリングや デバッグの機能を提供すること、また完全なスタックトレースを出力する 機能を提供することを目的として作成されています。

ここに集約されます。
哲学を「正しく理解して」用いるんなら、多分色々と便利です。
でも…もし「できると適切の間にある深い溝」を理解しない人がつかうと…すごいことがおきます。


…一瞬、直接override_functionだけ見たときは「…狂った?」とか思いましたともさ(誰とか何とかってのはあえて語らず)。
プロの包丁は毎日砥ぐものですが、よく砥いだ包丁って凶悪な凶器になるんですよねぇ。