Questo è da manuale di PHP: http://us.php.net/manual/en/language.constants.syntax.phpEsiste un'opzione di configurazione in PHP per impedire che le costanti non definite vengano interpretate come stringhe?
Se si utilizza una costante non definita, PHP presuppone che si intende il nome della stessa costante, proprio come se si chiama come una stringa (COSTANTE vs "costante"). Quando ciò accade, verrà emesso un errore di livello E_NOTICE.
Davvero non mi piace questo comportamento. Se non sono riuscito a definire una costante richiesta, preferirei che lo script fallisse, così che io sia forzato a definirlo. Esiste un modo per forzare PHP a bloccare lo script se tenta di utilizzare una costante indefinita?
Ad esempio. Entrambi questi script fanno la stessa cosa.
<?php
define('DEBUG',1);
if (DEBUG) echo('Yo!');
?>
e
<?php
if(DEBUG) echo('Yo!');
?>
avrei preferito il secondo dado di script e dichiarare che ha cercato di utilizzare un DEBUG costante indefinito.
Il codice di errore per l'utilizzo di una costante non definita sembra essere 8. – Tgr
Grazie Tgr! Ho modificato la costante PHP in E_USER_NOTICE. – powtac
+1 - Risposta migliore della mia. Probabilmente è una buona idea impostare solo questo handle di errore quando si esegue il debug dal momento che si incastra su un controllo di sottostringa che può essere lento (e può dare alcuni falsi positivi). – Geoff