Igualdad por valor y tipo en PHP
Supongamos que desea comparar de modo que el número
entre comillas no sea igual al mismo número
sin comillas. En otras palabras, usted quiere
comparar de manera que la comparación no sea solo
por valor, sino también por tipo de datos. Para esto
en lugar del operador == debe utilizar
el operador ===. La comparación con este operador
se denomina estricta.
Vea el ejemplo:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // esto se ejecutará, porque los valores no son iguales en tipo
}
?>
Pero al comparar dos strings '3'
en la pantalla se mostrará '+++':
<?php
if ('3' === '3') {
echo '+++'; // esto se ejecutará
} else {
echo '---';
}
?>
Lo mismo ocurre al comparar números:
<?php
if (3 === 3) {
echo '+++'; // esto se ejecutará
} else {
echo '---';
}
?>
La diferencia entre los dos operadores se manifiesta precisamente cuando los valores son iguales, pero el tipo de datos es diferente. En otros casos estos operadores funcionan de la misma manera. Por ejemplo, al comparar números diferentes, por supuesto, se mostrará 'unos menos':
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // esto se ejecutará
}
?>
Hoy en día en PHP es común usar siempre la comparación estricta. Se considera que en este caso el código está menos sujeto a errores.
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>