2007-11-10

Rozdíly v přiřazení objektů v php4 a php5

Napíšu si nějakou třídu a z ní vytvořím do proměnné objekt. Ten potom přiřadím jiné proměnné a nastavím objektu v ní nějakou hodnotu vlastnosti.

Výsledky vypíšu pomocí funkce print_r.

Php4 vypíše

tfoo Object
(
    [bar] => 1
)
tfoo Object
(
    [bar] => 2
)

Php5 vypíše

Tfoo Object
(
    [bar] => 2
)
Tfoo Object
(
    [bar] => 2
)

protože se přiřazením objektů vytvořila reference. Aby obojí fungovalo stejně musím k přiřazení v php5 přidat

$b = clone $a;

Zajímavé také je, že php5 vypíše správně velikost písmen v názvu třídy.