Ikke-streng sammenligning af logiske værdier i PHP
I det forrige eksempel brugte jeg operatoren
=== til sammenligning. I dette tilfælde blev vores variabel
sammenlignet for lighed med true både
på værdi og type.
I vores opgave kan vi også bruge operatoren
==. Hvis variablen test
altid vil være en af værdierne true
eller false, så ændrer intet sig:
<?php
$test = true; // skriver enten true eller false her
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Men hvis enhver værdi kan komme ind i variablen $test, så bliver alt
mere kompliceret. I sådant tilfælde, hvis variablen
indeholder en ikke-boolsk værdi, vil denne værdi
først blive konverteret til en boolsk værdi og først
derefter blive sammenlignet.
Lad os for eksempel sige, at vores variabel indeholder
tallet 1. I dette tilfælde vil det først
blive konverteret til den logiske type, det vil sige
til true. Og derefter vil sammenligningen blive udført:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // dette vil køre, fordi 1 == true er korrekt
} else {
echo '---';
}
?>
Men for eksempel vil tallet 0 blive konverteret
til false. Og vores betingelse vil som resultat
være falsk:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // dette vil køre, fordi 0 == true er IKKE korrekt
}
?>
Uden at køre koden, skal du afgøre, hvad der vil blive vist på skærmen:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Uden at køre koden, skal du afgøre, hvad der vil blive vist på skærmen:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Uden at køre koden, skal du afgøre, hvad der vil blive vist på skærmen:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Uden at køre koden, skal du afgøre, hvad der vil blive vist på skærmen:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Uden at køre koden, skal du afgøre, hvad der vil blive vist på skærmen:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Uden at køre koden, skal du afgøre, hvad der vil blive vist på skærmen:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>