Compararea non-strictă a valorilor booleene în PHP
În exemplul anterior am folosit pentru comparație
operatorul ===. În acest caz, variabila noastră
a fost comparată pentru egalitate cu true
atât ca valoare, cât și ca tip.
În problema noastră poți folosi și operatorul
==. Dacă în variabila test
va fi întotdeauna una dintre valorile true
sau false, atunci nimic nu se va schimba:
<?php
$test = true; // aici scriem fie true, fie false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Dar dacă în variabila $test pot
apărea orice valori, atunci totul devine
mult mai complex. În acest caz, dacă în variabilă
va fi o valoare non-booleană, atunci această valoare
va fi mai întâi convertită la boolean și abia
apoi va fi comparată.
Să presupunem, de exemplu, că în variabila noastră va fi
numărul 1. În acest caz, el va fi mai întâi
convertit la tipul boolean, adică
la true. Și apoi va fi efectuată comparația:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // se va executa acesta, deoarece 1 == true este adevărat
} else {
echo '---';
}
?>
În schimb, de exemplu, numărul 0 se converteste
la false. Și condiția noastră în rezultat
va fi falsă:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // se va executa acesta, deoarece 0 == true este NEadevărat
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Fără a rula codul, determinați ce se va afișa pe ecran:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>