Likhet i verdi og type i PHP
La oss si at du ønsker å sammenligne på en slik måte at et tall
i anførselstegn ikke skal være likt det samme tallet
uten anførselstegn. Med andre ord, du ønsker
å sammenligne slik at sammenligningen ikke bare er
basert på verdi, men også på datatype. For å gjøre dette
bruker du operatoren === i stedet for
operatoren ==. Sammenligning med en slik operator
kalles streng.
Se eksempel:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // dette vil kjøre, fordi verdiene ikke er like i type
}
?>
Men ved sammenligning av to strenger '3'
vil '+++' skrives ut:
<?php
if ('3' === '3') {
echo '+++'; // dette vil kjøre
} else {
echo '---';
}
?>
Samme gjelder ved sammenligning av tall:
<?php
if (3 === 3) {
echo '+++'; // dette vil kjøre
} else {
echo '---';
}
?>
Forskjellen mellom de to operatorene vises nøyaktig når verdiene er de samme, men datatypen er forskjellig. I andre tilfeller fungerer disse operatorene på samme måte. For eksempel, ved sammenligning av forskjellige tall, vil selvsagt '---' skrives ut:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // dette vil kjøre
}
?>
I dag er det allment akseptert i PHP å bruke streng sammenligning overalt. Det antas at koden i dette tilfellet er mindre utsatt for feil.
Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>