1

peclを介してapd.soライブラリからインストールされたovverride_functionを使用しています

期待どおりに動作しないようです

これは私のスクリプトです

function my_require($path) {
    echo "HELLO\n";
    echo $path;
}


$b = override_function('require', '$path', 'return my_require($path);');
var_dump($b);
require './index.php';

私が期待したのは出力として見ることでした

bool(true)
HELLO
./index.php

代わりに私は得た

bool(true)

Warning: require(./index.php): failed to open stream: No such file or directory in /var/www/test/script/test.php on line 14

したがって、関数が機能しているように見えても(bool true)、require関数は古い関数として機能します。

何か案が?

4

1 に答える 1

2

require関数ではなく、functionまたはのような言語構造echoです。require index.php(を使用せずに)呼び出してみてください。()通常の関数を呼び出さなくても機能し()ます。ドキュメントには明示的に記載されていませんが、「制御構造」の下にリストされているoverride_functionため、これrequire(または他の言語構造)では機能しません。

于 2012-10-05T11:30:28.463 に答える