Blog TreinaWeb
Webstandards e Programação Web e Desktop

Pegadinha IF em PHP

Básico? Sim, mas vamos a uma pequena dica para aqueles que programam em PHP.

Sem executar, diga-nos: Qual é o resultado dos dois IFs abaixo?

       if ("6 Galinhas" + "4 Patos" == "10 Aves") {
                echo "Expressão Verdadeira!";
       } else {
                echo "Expressão Falsa!";
       }
 
	if ( 0 == "Não Encontrado")
	{
		echo "Expressão Verdadeira';
	}else{
		echo "Expressão Falsa!";
	}

Se dissermos que ambos irão retornar verdadeiro como resultado, você acreditaria? OK, pode testar, não somos muito malucos.

Ainda não acredita? ou acha que não é PHP? Veja a explicação lógica para isto:

No primeiro exemplo, quem programa em PHP deve saber, que o operador ‘+’ é somente para expressões aritméticas (para concatenação, utiliza-se o ‘.’- ponto), então o PHP reconhece o primeiro digito das strings “6 Galinhas”, “4 Patos” e “10 Aves”, converte a string para o tipo inteiro e assim ignorando as palavras e deixando somente os números, resultando em 6 + 4 == 10, sendo assim o resultado será verdadeiro.

Já no segundo caso, o PHP irá reconhecer o número 0 e tentará converter a string “Não encontrado” para o tipo inteiro, pelo fato de não haver número na string a tentativa irá falhar e retornará Falso, como falso em PHP é 0(zero), então a pergunta será se 0(zero) == 0(zero), que também irá retornar verdadeiro.

Pode ser algo simples, mas quem está começando, pode perder alguns minutos até encontrar este “problema”que não ocorreria  em outras linguagens.

Até a próxima!



2 respostas para “Pegadinha IF em PHP”

  1. johnathan cardoso disse:

    Não vai retornar nem falso nem verdadeiro. Pos tem um erro de sintaxe no segundo if (echo “Expressão Verdadeira’;)

  2. Vinícius disse:

    Não sei se está errado ou certo, mas me ajudou a fazer uma função aqui

    Ficou assim o meu:

    Preço:

    Obrigado

Comente

SEO Powered by Platinum SEO from Techblissonline