2009-09-08 2 views
0

J'ai activé E_NOTICE dans php.ini. Il ne reste plus me prévenir pas des valeurs non attribuées commeE_NOTICE ne prévient pas des valeurs non attribuées

$foo++; 

ai essayé de régler le error_reporting ainsi. Ne marche pas. error_reporting() est défini sur 6143, ce qui signifie que E_NOTICE est activé. Cet extrait de code me met également en garde un avis:

$foo = bar; 

Toutes les idées?

+0

Problème trouvé: Nous compilons le php nous-même et pendant ce processus, les notifications de variables non affectées sont réparées. :-( – 2ni

Répondre

0

Il fonctionne pour moi dans la version PHP 5.2.8

Avis: Undefined variable: foo

<?php 

error_reporting(E_ALL | E_NOTICE); // Also works with 6143 
$foo++; 

?> 
3

Cela devrait provoquer un message d'erreur. Peut-être cela est-il dû à l'enregistrement d'un gestionnaire d'erreur qui avale incorrectement toutes les erreurs? Tels que

function error_handler($error_number /*, ... */) { 
    // do stuff... 
    return true; 
} 
+0

J'ai en fait un error_handler enregistré.Mais même si je ne mets pas le error_handler, je ne reçois pas un avis.Très étrange J'ai php 5.2.10 – 2ni

0

Après avoir modifié le fichier php.ini. vous devriez redémarrer les services php/apache.

+0

Je sais + je l'ai fait :-( – 2ni

0

Comme indiqué dans le manuel PHP, vous pouvez également les définir dans vos scripts (http://php.net/manual/en/function.ini-set.php#refsect1-function.ini-set-examples):

if (!ini_get('display_errors')) { 
    ini_set('display_errors', '1'); 
} 

Ainsi, une erreur complète réglage pour que le niveau maximum de rapports d'erreur pourrait être quelque chose comme:

Mettez ce code au début de votre script et il vous montrera toutes les erreurs, les avis et tout le reste.
if (!ini_get('display_errors')) { 
    ini_set('display_errors', '1'); 
} 

error_reporting(E_ALL); 
ini_set('error_reporting', E_ALL); 

$foo = bar; 

Questions connexes