PHP 5.6 (xampp) は ArgumentCountError をスローする代わりに警告を表示します

PHP 5.6 (xampp) は ArgumentCountError をスローする代わりに警告を表示します

CLI からいくつかの PHP スクリプトを実行しています。PHP にはパス変数 /c/xampp/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: また、ログ エラーを無効にしたり、エラーを表示して 1 つのエラー出力のみを取得したりしても、エラーが 2 回出力されることに注意してください。(上記の例では、実行時にエラー処理を設定せず、表示されているものだけが実行されます)

答え1

以前のバージョンの PHP では、ArgumentCountError が発生すると警告が出されていました。

現在、少なくとも v7.1 からはエラー例外が発生します。

PHPドキュメント

関連情報