Rodzaju. Możesz aktywować poziom E_NOTICE
w swoim error reporting. (Lista stałych here.)
Każde użycie niezadeklarowanej zmiennej spowoduje wyświetlenie E_NOTICE
.
Błąd na żywo E_STRICT
wyświetli te powiadomienia, a także inne wskazówki dotyczące optymalizacji kodu.
error_reporting(E_STRICT);
Zakończenie skryptu
Jeśli jesteś naprawdę poważne, a chcesz skrypt do zakończyć zamiast po prostu wyprowadzania zawiadomienie kiedy napotykają zmienną nierejestrowanej, można zbudować custom error handler.
przykład roboczych, który obsługuje tylko zawiadomień „Undefined zmiennej” w nich i przechodzi wszystko inne do obsługi domyślne błędów PHP:
<?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
?>
od wersji 7 [php obsługuje tryb ścisłe] (http://php.net/manual/en/migration70.new-features.php), wystarczy umieścić 'zadeklarować (strict_types = 1); 'u góry każdego (i każdego) pliku skryptu, przed deklaracją przestrzeni nazw. – Code4R7
@ Code4R7 To inny rodzaj trybu ścisłego niż ten, o którym pytano w pytaniu. – Flimm
Prawda. Powróć do 'error_reporting (E_STRICT);'. – Code4R7