Ei-tiukka loogisten arvojen vertailu PHP:ssä
Edellisessä esimerkissä käytin vertailuun
operaattoria ===. Tässä tapauksessa muuttujamme
verrattiin yhtäsuuruuteen true:n kanssa
sekä arvon että tyypin suhteen.
Tehtävässämme voidaan käyttää myös operaattoria
==. Jos muuttujassa test
on aina joko arvo true
tai false, niin mikään ei muutu:
<?php
$test = true; // kirjoitetaan tähän joko true tai false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Mutta jos muuttujaan $test voi
päästä mitä tahansa arvoja, niin kaikki muuttuu
paljon monimutkaisemmaksi. Tällöin, jos muuttujassa
ei ole loogista arvoa, niin tämä arvo
muunnetaan ensin loogiseksi ja vasta
sitten verrataan.
Oletetaan esimerkiksi, että muuttujassamme on
luku 1. Tässä tapauksessa se muunnetaan ensin
loogiseksi tyypiksi, eli
arvoksi true. Ja sitten suoritetaan vertailu:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // toimii tämä, koska 1 == true on totta
} else {
echo '---';
}
?>
Mutta esimerkiksi luku 0 muunnetaan
arvoksi false. Ja ehtomme on tällöin
epätosi:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // toimii tämä, koska 0 == true on EItosi
}
?>
Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Määritä käynnistämättä koodia, mitä ruudulle tulostetaan:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>