Autor | Zpráva | ||
---|---|---|---|
venca12 Profil |
#1 · Zasláno: 10. 11. 2007, 17:44:48
Ahoj, mám nějakou třídu:
class Tfoovytvořím si jenu její instanci do proměnné $a a tuto proměnnou přiřadím klasicky, bez reference proměnné $b. Vlastnosti instanci v proměnné $b nastavím nějakou hodnotu a obě proměnné vypíšu. $a = new Tfoo();V php4 se mi vypíše tfoo Objecta v php5 Tfoo Objecttzn. v php5 se normálním přiřazováním vytváří reference. Pokud chci přiřadit bez reference musím použít jakýsi operátor clone. A teď dotaz: Toto je úplně normální chování? |
||
bukaj Profil |
#2 · Zasláno: 10. 11. 2007, 18:12:32
venca12
v php5 se normálním přiřazováním vytváří reference. Pokud chci přiřadit bez reference musím použít jakýsi operátor clone. Toto je úplně normální chování? Ano. |
||
Mastodont Profil |
#3 · Zasláno: 10. 11. 2007, 19:43:44
venca12
Že se normálním přiřazením objektu ve skutečnosti vytvoří jen reference na objekt, je běžné i v jiných jazycích. V PHP 4 se přiřazením vytvářela kopie a to lidi nějak neskousli, takže v PHP 5 je to už normálně. |
||
Časová prodleva: 3 dny
|
|||
venca12 Profil |
#4 · Zasláno: 13. 11. 2007, 09:18:18
Já se stydím, ale doteď jsem to nevěděl (no jo no, odkojenej na php). A teď to se mnou dvakrát vypeklo. Nejenom v php, kde jsem řešil proč se mi upravují data i v objektu, který jsem normálně přiřadil, ale i v javascriptu, kde to funguje na stejném principu.
|
||
Časová prodleva: 16 let
|
0