1
resposta

DÚVIDA DOCUMENTAÇÃO DO PHP

https://www.php.net/manual/en/language.operators.comparison.php

Na documentação do php, de acordo com os operadores de comparação, no php 8, a seguinte comparação é copnsiderada TRUE:

var_dump(100 == "1e2");

No entanto, a seguinte comparação é considerada FALSE:

var_dump(0 == "a");

Porquê?

1 resposta

Oi Victor, tudo bem?

A documentação do PHP explica que a comparação var_dump(100 == "1e2"); é considerada verdadeira porque o PHP faz uma conversão implícita do valor da string "1e2" para o número 100. Isso ocorre porque a string "1e2" é uma notação científica que representa o número 100. Portanto, quando você compara 100 com "1e2", o PHP entende que ambos os valores são iguais.

Por outro lado, a comparação var_dump(0 == "a"); é considerada falsa porque o PHP não consegue fazer uma conversão implícita do valor da string "a" para um número. Como a string "a" não representa um número válido, o PHP não consegue comparar o valor 0 com "a" e retorna falso.

Em resumo, o PHP realiza conversões implícitas durante a comparação de valores, mas nem sempre é possível converter uma string para um número.

Um abraço e bons estudos,