Home / Internet / true == false, demonstratie in varianta PHP

true == false, demonstratie in varianta PHP

25 August 2008 16:21

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...

Jurnalul ei si jurnalul lui »   « Berea si inteligenta

3 Opinii · Spune-ti parerea

  • Razvan Girmacea 17:32 25 August 2008

    Nu cumva face $a == $b ca fiind string == string ?

    Reply to this comment
  • de ce? 17:44 25 August 2008

    Nu, “0″ nu va fi egal niciodata cu “string” si nici o alta valoare numerica pentru $b nu va mai da egalitate :)

    Reply to this comment
  • RockGirl 5:02 26 August 2008

    si pe romana se poate ? @-)

    Reply to this comment

Cum comentezi?

Vezi si ceva reguli de comentarii pe blog.
Hoteluri
Spatiu de inchiriat
Publicatie IT gratuita
Ebucataria
viata de cacat
PCFun
email gratuit
Vrei reclama aici?

Taguri »

hi5 imobiliare timisoara