V PHP5 byla změněna funkčnoust operátoru porovnávání a identity.

V PHP5 jsou si dvě proměnné rovny, pokud jsou obě instancemi stejné třídy (instance1 == instance2). Dvě instance jsou identické, pokud jsou to stejné instance stejné třídy (instance1 === instance1). Příklad:

vlastnost = $vlastnost;
}
}

class Trida2{
private $vlastnost;
function Flag($vlastnost = true) {
$this->vlastnost = $vlastnost;
}
}

$o = new Trida1();
$p = new Trida1();
$q = $o;
$r = new Trida2();

echo „Instance stejné třídy“;
porovnatObjekty($o, $p);

echo „Reference na stejné instance“;
porovnatObjekty($o, $q);

echo „Instance dvou různých tříd“;
porovnatObjekty($o, $r);
?>
Myslím, že příklad nepotřebuje dlouhý komentář. Vždy je volána funkce, která vrací výsledek porovnávání. Skript vypíše:

Instance stejné třídy
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Reference na stejné instance
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE
Instance dvou ruzných tříd
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Pozn. red.: Zdůrazňujeme, že tento text se týká PHP 5.

Žádný příspěvek v diskuzi

Odpovědět