cli에서 일부 PHP 스크립트를 실행하고 있습니다. 저는 var /c/xampp/php 경로를 사용하여 PHP에 xampp 설치를 사용합니다. 나는 php5와 7 사이를 전환하고 싶을 때 설치된 xampp 폴더의 이름을 바꾸어 버전을 바꾸는 경향이 있습니다.
최근에 php5.6을 삭제하고 다시 설치해야 했습니다. 이제 어떤 이유로 필수 매개변수를 전달하지 않고도 모든 기능을 실행할 수 있으며 실행을 중단하는 예외 대신 경고만 표시됩니다.
예.
<?php
function someFunction($required_param){
if (!isset($required_param)) die('WTF! Param was not passed in yet im allowed to execute!');
}
someFunction();
//결과
$ php test/test.php
PHP Warning: Missing argument 1 for someFunction(), called in C:\repo\php5\orm\test\test.php on line 5 and defined in C:\repo\php5\orm\test\test.php on line 2
Warning: Missing argument 1 for someFunction(), called in C:\repo\php5\orm\test\test.php on line 5 and defined in C:\repo\php5\orm\test\test.php on line 2
WTF! Param was not passed in!
정말 이상한 행동입니다. 나는 PHP가 필수 매개변수 없이 함수를 호출하는 것을 허용하는 것을 본 적이 없습니다.
어떻게 이런 일이 일어날 수 있는지 아시나요?
PS-또한 로그 오류를 비활성화하거나 단일 오류 출력만 얻기 위해 오류를 표시하더라도 오류가 두 번 출력된다는 점도 참고하세요. (위의 예는 런타임 시 오류 처리를 설정하지 않고 표시되는 내용만 실행되는 것입니다.)