Como Consertar Erros de Undefined Variable
<?php if ($a == "b") { echo "lala"; } elseif ($a == "c") { echo "lele"; } else { echo "lulu"; } ?>
No trecho de codigo acima imagine que você quer que se enquadre em "else" a condição de $a ser vazio ou de $a nao estiver sido inicializado ou de diferente de "b" e de "c".
Com a constante E_ALL em error_reporting, isso iria lhe gerar uma mensagem de Warning, um simples aviso de que a variável $a não foi inicializada, ou seja, que $a é uma variável que ainda não tem uma definição.
Para contornar isto, você poderia aumentar seu código como
<?php if (!isset($a)) { echo "lulu"; } elseif ($a == "b") { echo "lala"; } elseif ($a == "c") { echo "lele"; } else { echo "lulu"; } ?>
Ou poderia utilizar @ pra ocultar o warning. Porém, não se esqueça de que @ oculta todos os erros e não só warnings.
<?php if (@$a == "b") { echo "lala"; } elseif (@$a == "c") { echo "lele"; } else { echo "lulu"; } ?>
Colocando isset() ou @ na minha opinião é algo que só vai lhe tomar tempo dependendo do tamanho do codigo, e no caso de @ talvez ocultar algum outro erro acidental, eu recomendo que seja modificado seu arquivo php.ini (normalmente encontrado em C:\Windows\) e na opção error_reporting modifique para:
error_reporting = E_ALL & ~ E_NOTICE;
Salve e reinicie o Apache.
Isso irá desligar esses erros de warning que na minha opinião são totalmente desnecessários :oP apesar de muitas controvérsias.
Caso você não tenha acesso ao php.ini ou não queira modificá-lo coloque no inicio de seu código:
<?php error_reporting(E_ALL & ~ E_NOTICE); ?>
Isso terá o mesmo efeito para o código aonde tiver esta diretiva...
Bom eh isso ai :~
[]´z
Marcus
Obrigado por este artigo, nem imagine o quanto foi util para mim, obrigado mesmo.
15/09/2007 6:43am
(~17 anos atrás)
Cara gostei demais da sua dica, já estava ficando doido com esses warnings estúpidos,faleu mesmo...
22/03/2005 3:21pm
(~19 anos atrás)
Rodrigo,
é bem neste sentido que me referi, quando postei estes comentários... não quer dizer q está errado, porém, não está totalmente correto !!!
é bem neste sentido que me referi, quando postei estes comentários... não quer dizer q está errado, porém, não está totalmente correto !!!
01/04/2002 2:25pm
(~22 anos atrás)
Na minha opinião, isso que você mostrou apenas inibe a apresentação dos possíveis erros e warnings, e não conserta... se está aparecendo um erro ou um warning é porque algo não está certo ! :)
01/04/2002 10:34am
(~22 anos atrás)