%EC%9D%B4%20ArgumentCountError%EB%A5%BC%20%EB%B0%9C%EC%83%9D%EC%8B%9C%ED%82%A4%EB%8A%94%20%EB%8C%80%EC%8B%A0%20%EA%B2%BD%EA%B3%A0%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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-또한 로그 오류를 비활성화하거나 단일 오류 출력만 얻기 위해 오류를 표시하더라도 오류가 두 번 출력된다는 점도 참고하세요. (위의 예는 런타임 시 오류 처리를 설정하지 않고 표시되는 내용만 실행되는 것입니다.)