Jump to content


Photo

Curiosidade Quanto A Null


  • Faça o login para participar
6 replies to this topic

#1 Matheus Cáceres

Matheus Cáceres

    Normal

  • Usuários
  • 65 posts
  • Sexo:Não informado

Posted 09/01/2008, 12:36

e ai galera blz???
eu sou meio curioso na hora de testar alguns codigos e estava vendo e tentei o seguinte

$bar = null;
if (isset($bar)) 
{
   echo "variavel existe";
}

como era de esperar não retornou nenhum resultado sendo portanto que a variavel não existe, então se a variavel não existe se colocar ela num echo deveria retornar algum erro e lah fui eu

$bar = null;
echo $bar;

incrivelmente nada retornouo ou seja a variavel existe ... mas qndo usada com isset ele naum a reconhece ... sei que eh estranho a pergunta, mas porque isso ocorre?

#2 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 09/01/2008, 13:34

Matheus,

depende de como está configurado o seu interpretador PHP para acusar erros...

isso ai nao eh um ERROR e sim um warning...

abs
"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#3 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 09/01/2008, 13:48

e ai galera blz???
eu sou meio curioso na hora de testar alguns codigos e estava vendo e tentei o seguinte

$bar = null;
 if (isset($bar)) 
 {
	echo "variavel existe";
 }

como era de esperar não retornou nenhum resultado sendo portanto que a variavel não existe, então se a variavel não existe se colocar ela num echo deveria retornar algum erro e lah fui eu

$bar = null;
 echo $bar;

incrivelmente nada retornouo ou seja a variavel existe ... mas qndo usada com isset ele naum a reconhece ... sei que eh estranho a pergunta, mas porque isso ocorre?



Matheus,

depende de como está configurado o seu interpretador PHP para acusar erros...

isso ai nao eh um ERROR e sim um warning...

abs


Deem uma lidinha no manual antes: http://php.net/null

The special NULL value represents that a variable has no value. NULL is the only possible value of type NULL.



Não é que ela não exista, é que o valor dela é nulo! Nulo é uma coisa e não existir é outra.

Leia sobre isset tambem: http://php.net/isset

Determine whether a variable is set


Seria mais ou menos que ela testa se a variavel existe no escopo ou se o valor dela não é nulo.

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#4 EternaL

EternaL

    12 Horas

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:Blumenau, SC

Posted 09/01/2008, 13:49

Na verdade geraria um Notice. Mas fiz alguns testes aqui e realmente ele não retorna nenhum tipo de erro.

No site php.net na documentação do isset() é mencionado o null:

isset() retornará FALSE se for usada em uma variável com o valor NULL. Lembrando que no PHP um byte NULL ("") é diferente da constante NULL.


Hehehe, depois que postei o savior ja tinha postado =P

Edição feita por: EternaL, 09/01/2008, 13:52.

Magnum Web - Trazendo o melhor da web para você

Desenvolvimento de websites e sistemas web. Acesse http://www.magnumweb.com.br

#5 Matheus Cáceres

Matheus Cáceres

    Normal

  • Usuários
  • 65 posts
  • Sexo:Não informado

Posted 09/01/2008, 15:42

hmm saquei ate mas qual seria a diferença entre

Lembrando que no PHP um byte NULL ("") é diferente da constante NULL.

não intendi isso. e vlw aew os comentarios acima jah me explicou algumas coisas

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 09/01/2008, 18:42

Byte null é o que chamamos de vazio.

Veja:

$foo = null;
$bar = "";
$foo é uma string nula
$bar é uma string vazia

$foo retorna falso na função isset()
$bar retorna verdadeiro na função isset()

Para checar se existe algum valor numa variável, use a função empty() negada. ;)

PS: O código exemplificado no primeiro post não geraria nenhum tipo de erro/alerta.

[]’s :DAté mais

#7 georgewar

georgewar

    Let's upgrade myself

  • Usuários
  • 169 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro - RJ
  • Interesses:PHP - JavaScript

Posted 10/01/2008, 07:53

incrível como um pouco de teoria faz a diferença em grandes projetos...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq