Nestrikové porovnávání logických hodnot v PHP
V předchozím příkladu jsem pro porovnání použil
operátor ===. V tomto případě se naše proměnná
porovnávala na rovnost true jak
podle hodnoty, tak podle typu.
V našem úkolu lze použít i operátor
==. Pokud bude v proměnné test
vždy jedna z hodnot true
nebo false, nic se nezmění:
<?php
$test = true; // zde píšeme either true, nebo false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Ale pokud do proměnné $test mohou
spadnout libovolné hodnoty, vše se stává
mnohem složitějším. V takovém případě, pokud v proměnné
bude nelogická hodnota, tato hodnota
bude nejprve převedena na logickou a teprve
poté bude porovnána.
Nechť například v naší proměnné bude
číslo 1. V tomto případě se nejprve
převede na logický typ, tedy
na true. A poté bude provedeno porovnání:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // spustí se toto, protože 1 == true je pravda
} else {
echo '---';
}
?>
Ale například číslo 0 se převede
na false. A naše podmínka bude ve výsledku
nepravdivá:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // spustí se toto, protože 0 == true je NEpravda
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>