이PHP : 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
으로 볼 수 있었다 대신에 나는 함수 (부울 TRUE) 일 듯 요구하는 기능은 여전히 이전의 역할을 그래서 경우에도
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'를 호출하면,'()'하지 않고 정상적인 함수를 호출하는 동안에도 여전히 동작합니다. 문서에 명시 적으로 명시되어 있지는 않지만 "Control Structures"아래에 나열되어 있으므로이 때문에 override_function이 작동하지 않을 수 있습니다. – clentfort
true @clentfort –