Igualdade por valor e tipo em PHP
Suponha que você queira comparar de forma que um número
entre aspas não seja igual ao mesmo número
sem aspas. Em outras palavras, você quer
comparar de forma que a comparação leve em conta
não apenas o valor, mas também o tipo de dados. Para isso,
em vez do operador ==, você deve usar
o operador ===. A comparação com esse operador
é chamada de estrita.
Veja o exemplo:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // isso será executado, pois os valores não são iguais em tipo
}
?>
Mas ao comparar duas strings '3'
o resultado exibido será '+++':
<?php
if ('3' === '3') {
echo '+++'; // isso será executado
} else {
echo '---';
}
?>
O mesmo ocorre ao comparar números:
<?php
if (3 === 3) {
echo '+++'; // isso será executado
} else {
echo '---';
}
?>
A diferença entre os dois operadores aparece exatamente quando os valores são os mesmos, mas os tipos de dados são diferentes. Em todos os outros casos, esses operadores funcionam da mesma maneira. Por exemplo, ao comparar números diferentes, claro, o resultado será '---':
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // isso será executado
}
?>
Atualmente, no PHP, é uma prática amplamente aceita usar a comparação estrita em todos os lugares. Acredita-se que, assim, o código fica menos sujeito a erros.
Sem executar o código, determine o que será exibido na tela:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>