Värde- och typjämförelse i PHP
Låt oss säga att du vill jämföra på ett sätt så att talet
i citattecken inte är lika med samma tal
utan citattecken. Med andra ord, du vill
jämföra så att jämförelsen inte bara sker
utifrån värdet, utan också utifrån datatypen. För att göra detta
ska du istället för operatorn == använda
operatorn ===. Jämförelse med en sådan operator
kallas för strikt.
Se exempel:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // detta kommer att gälla, eftersom värdena inte är lika i typ
}
?>
Men vid jämförelse av två strängar '3'
kommer '+' att skrivas ut på skärmen:
<?php
if ('3' === '3') {
echo '+++'; // detta kommer att gälla
} else {
echo '---';
}
?>
På samma sätt som vid jämförelse av tal:
<?php
if (3 === 3) {
echo '+++'; // detta kommer att gälla
} else {
echo '---';
}
?>
Skillnaden mellan de två operatorerna visar sig just när värdena är desamma, men datatypen är olika. I andra fall fungerar dessa operatorer på samma sätt. Till exempel, vid jämförelse av olika tal, kommer det förstås att skrivas ut minus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // detta kommer att gälla
}
?>
Numera är det allmänt accepterat i PHP att använda strikt jämförelse överallt. Man anser att koden i detta fall är mindre benägen för fel.
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 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>