true == false, demonstratie in varianta PHP
Conversia variabilelor in PHP poate da niste rezultate neasteptate. Sa zice ca avem doua variabile: un $a de tip string si un $b de tip integer:
$a = 'string';
$b = 0;
OK, pentru ca i-am atribuit o valoare variabilei $a (stringul ’string’), o comparatie va returna “true”, iar pentru ca variabila $b este un intreg cu valoare 0 va rezulta ca este “false”. Avem in continuare: daca $a e true si $b e false afiseaza “totul e bine!”:
if ( $a == true && $b == false )
{
echo "totul e bine!";
}
Pe ecran va aparea “totul e bine!”. Acum e acum, ce se va intampla daca vom compara si pe $a cu $b (o variabila era “true” si una “false”)? Daca $a e true, $b e false si $a e egal cu $b afiseaza ceva:
if ( $a == true && $b == false && $a == $b )
{
echo "true == false :))";
}
PHP-ul va zice ca are conditia indeplinita si va afisa pe ecran “true == false :))”.
Ce se intampla? Pentru a putea compara cele 2 variabile, trebuie facuta o conversie. Stringul $a va fi convertit automat intr-un integer… cu valoare 0. Cum variabila $b avea valoarea 0… va rezulta (dupa logica invatata la scoala: daca a= b si b=c => a=c) ca true == false
PS: pentru a nu ajunge in situatii de genul asta, e bine de verificat si tipul unei variabile.
O sa iti placa...









Cum comentezi?
Vezi si ceva reguli de comentarii pe blog.