PHP 5.6 (xampp) zeigt Warnungen an, anstatt ArgumentCountError auszulösen

PHP 5.6 (xampp) zeigt Warnungen an, anstatt ArgumentCountError auszulösen

Ich führe einige PHP-Skripte über die Befehlszeile aus. Ich verwende die XAMPP-Installation für PHP mit dem Pfad var /c/xampp/php. Ich neige dazu, Versionen auszutauschen, indem ich installierte XAMPP-Ordner umbenenne, wenn ich zwischen PHP5 und 7 usw. wechseln möchte.

Habe vor Kurzem mein php5.6 gelöscht und musste es neu installieren. Jetzt kann ich aus irgendeinem Grund jede Funktion ausführen, ohne die erforderlichen Parameter anzugeben, und bekomme nur eine Warnung statt einer Ausnahme, die die Ausführung anhält.

z.B.

    <?php
function someFunction($required_param){
    if (!isset($required_param)) die('WTF! Param was not passed in yet im allowed to execute!');
}
someFunction();

//Ergebnisse mit

$ 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!

Das ist wirklich ein seltsames Verhalten. Ich habe noch nie erlebt, dass PHP den Aufruf einer Funktion ohne die erforderlichen Parameter zulässt.

Irgendwelche Ideen, wie das passieren könnte?

PS: Beachten Sie auch, dass der Fehler zweimal ausgegeben wird, auch wenn ich Protokollfehler oder Anzeigefehler deaktiviere, um nur eine einzige Fehlerausgabe zu erhalten. (Das obige Beispiel ist ohne Festlegen einer Fehlerbehandlung zur Laufzeit, es wird nur das ausgeführt, was Sie sehen.)

Antwort1

Frühere PHP-Versionen haben beim Auftreten von ArgumentCountError eine Warnung ausgegeben.

Zumindest ab Version 7.1 wird jetzt eine Fehlerausnahme ausgelöst.

PHP-Dokumentation

verwandte Informationen