Olikhet i värde och typ i PHP
Förutom operatorn != finns det också
operatorn !== som tar hänsyn till typ vid
jämförelse. Låt oss titta på skillnaderna mellan
dem med exempel.
Låt två tal 3 jämföras med operatorn !=.
Denna operator jämför värdena för att de INTE är lika. Eftersom
våra värden faktiskt är lika, kommer '-' att skrivas ut:
<?php
if (3 != 3) {
echo '+++';
} else {
echo '---'; // detta kommer att köras, eftersom värdena är lika
}
?>
Låt nu ett av våra värden vara
i citationstecken. I detta fall kommer operatorn !=
fortfarande att anse dem som lika (eftersom värdet stämmer
överens, och typen är inte viktig för denna operator)
och kommer igen att skriva ut '-':
<?php
if ('3' != 3) {
echo '+++';
} else {
echo '---'; // detta kommer att köras, eftersom värdena är lika
}
?>
Låt oss nu jämföra två tal 3
med operatorn !==. Den kommer också
att anse dem som lika och skriva ut '-':
<?php
if (3 !== 3) {
echo '+++';
} else {
echo '---'; // detta kommer att köras, eftersom värdena är lika
}
?>
Men om vi nu sätter en av treorna i citationstecken,
kommer operatorn !== att anse våra treor
som olika, eftersom, även om deras värden stämmer överens,
så har de olika typ:
<?php
if ('3' !== 3) {
echo '+++'; // detta kommer att köras, eftersom värdena INTE är lika
} else {
echo '---';
}
?>
Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 != $test2) {
echo '+++';
} else {
echo '---';
}
?>
Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>
Utan att köra koden, avgör vad som kommer att skrivas ut på skärmen:
<?php
$test1 = 3;
$test2 = 2;
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>