1
我通過PECL利用apd.so庫安裝ovverride_function這似乎PHP:即使布爾返回true
不能按預期工作override_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
所以,即使功能似乎工作(布爾真)需要功能仍然充當舊的。
有什麼想法?
IIRC'require'不是函數,它是像'function'或'echo'這樣的語言結構。嘗試調用'require index.php'(不帶'()'),它在調用普通函數時不會調用'()'將不起作用。文檔沒有明確說明它是什麼,但它列在「控制結構」下,所以這就是爲什麼'override_function'可能不適用於這個。 – clentfort
true @clentfort –