PHP 5.6 (xampp) muestra advertencias en lugar de generar ArgumentCountError

PHP 5.6 (xampp) muestra advertencias en lugar de generar ArgumentCountError

Estoy ejecutando algunos scripts php desde cli. Utilizo la instalación de xampp para php con la ruta var /c/xampp/php. Tiendo a intercambiar versiones cambiando el nombre de las carpetas xampp instaladas cuando quiero cambiar entre php5 y 7, etc.

Recientemente eliminé mi php5.6 y tuve que reinstalarlo. Ahora, por alguna razón, puedo ejecutar cualquier función sin pasar los parámetros requeridos y solo recibo una advertencia en lugar de una excepción que detiene la ejecución.

p.ej.

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

//resultados con

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

Este es un comportamiento realmente extraño. Nunca he visto que PHP permita llamar a una función sin los parámetros requeridos.

¿Alguna idea de cómo podría suceder esto?

PD: también tenga en cuenta que genera el error dos veces incluso si desactivo los errores de registro o muestro los errores para obtener solo un resultado de error. (el ejemplo anterior no configura ningún control de errores en tiempo de ejecución, solo se ejecuta lo que ve)

Respuesta1

Las versiones anteriores de PHP generaban una advertencia cuando encontraban ArgumentCountError.

Ahora, al menos desde la versión 7.1, genera una excepción de error.

documentación PHP

información relacionada