1
resposta

Compartilhando conhecimento

Bom dia, fiquei com uma duvida mas já esta solucionada vou compartilhar aqui com vcs.

Duvida básica : Qual a diferença de "" e NULL? exemplo:

if ($nomeSobrenome[0] === "") {
            $this->nome = 'nome invalido';
        } else {
            $this->nome = $nomeSobrenome[0];
        }

        if ($nomeSobrenome[1] === NULL) {
            $this->sobrenome = 'sobrenome invalido';
        } else {
            $this->sobrenome = $nomeSobrenome[1];
        }

Resposta:

Null eh um tipo de dado nulo “” ou ‘’ eh uma string vazia Null == “” Null == ‘’ Vão retornar true

Null === "" Null === ‘’ Retornam False

== testa se o valor das variáveis eh igual === testa se os valores são iguais e os tipos de dados são iguais Nesses casos os valores são iguais Mas os tipos são diferentes

1 resposta

Olá, Daniel!

Desculpa a demora por um retorno.

Muito obrigada por compartilhar sua dúvida conosco, é sempre bom aprendermos juntos!

No exemplo compartilhado, a diferença entre "" (aspas duplas) e NULL é a seguinte:

  • "" (aspas duplas) representam uma string vazia, ou seja, é um valor que indica que não há nenhum caractere naquela variável. No código, estamos verificando se o primeiro elemento do array $nomeSobrenome é uma string vazia. Caso seja, definimos o valor 'nome inválido' para a propriedade $this->nome.

  • NULL, por outro lado, é um valor especial que representa a ausência de valor, o que é diferente de uma string vazia. No código, estamos verificando se o segundo elemento do array $nomeSobrenome é NULL. Caso seja, definimos o valor 'sobrenome inválido' para a propriedade $this->sobrenome.

Somado a isso, no PHP, existem duas formas de comparar valores: com == (igual) e com === (idêntico). A diferença entre elas é que o operador == compara apenas o valor das variáveis, enquanto o operador === compara tanto o valor quanto o tipo de dado das variáveis.

Nesse caso, se utilizarmos == para comparar NULL com "" (aspas duplas), ambos serão considerados iguais, pois o valor é o mesmo. Porém, se utilizarmos === para compará-los, o resultado será falso, pois eles são de tipos diferentes.

Portanto, no código, se $nomeSobrenome[0] for uma string vazia ou $nomeSobrenome[1] for NULL, as condições dentro dos if serão verdadeiras e definiremos os valores 'nome inválido' e 'sobrenome inválido' para as respectivas propriedades.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!