más o menos. Puede activar el nivel E_NOTICE
en su error reporting. (Lista de constantes here.)
Cada instancia de uso de una variable no declarada generará un E_NOTICE
.
El E_STRICT
error livel también arrojará esos avisos, así como otros consejos sobre cómo optimizar su código.
error_reporting(E_STRICT);
Terminar el guión
Si usted es realmente serio, y quiere que su secuencia de comandos para terminar en lugar de sólo la salida de un aviso cuando se enfrentan a una variable no declarada, se podría construir una custom error handler.
Ejemplo de trabajo que sólo se ocupa de todo aviso "Undefined variable" en ellos y pasa todo lo demás en el gestor de errores de PHP por defecto:
<?php
error_reporting(E_STRICT);
function terminate_missing_variables($errno, $errstr, $errfile, $errline)
{
if (($errno == E_NOTICE) and (strstr($errstr, "Undefined variable")))
die ("$errstr in $errfile line $errline");
return false; // Let the PHP error handler handle all the rest
}
$old_error_handler = set_error_handler("terminate_missing_variables");
echo $test; // Will throw custom error
xxxx(); // Will throw standard PHP error
?>
Desde la versión 7 [PHP es compatible con el modo estricto] (http://php.net/manual/en/migration70.new-features.php), sólo hay que poner 'declare (strict_types = 1); 'en la parte superior de cada uno (y cada) archivo de script, antes de la declaración del espacio de nombres. – Code4R7
@ Code4R7 Ese es un tipo diferente de modo estricto que el que se pregunta en la pregunta. – Flimm
Es cierto. Vuelva a 'error_reporting (E_STRICT);'. – Code4R7