ugrás a tartalomhoz

függvény referenciát ad vissza, de miért?

hollo.levente · 2009. Már. 6. (P), 17.56
Sziasztok!

Próbálom dióhélyban vázolni a problémám. A teljes kódot nem copyzom be, mert az osztályok implementációja több100 sor.

Van egy saját osztályom, DataTable néven és egy Adapter néven.

1. $adapter = new Adapter();
2. print $adapter->dataTable;  3. $table = $adapter->GetData();
4. $table->Row = "xyz";
5. print $adapter->dataTable;


1. //konstruktorban generál (feltölt) egy tömböt különböző értékekkel, amit beállít a DataTable típusú $adapter->dataTable attribútum értékének
2. //kiírja a tartalmát korrekten, az 1. sorban létrehozott DataTable objectnek, az osztályban a __toString()-ben mondom meg, hogy hogy írja ki.
3. //visszaadja a DataTable típusú objectet, az $adapter példány $dataTable attribútumát ($adapter->dataTable). Ezt eltárolom a $table változóba.
4. //A szintén DataTable típusú $table változónak megváltoztatom a $Row attribútumának értékét.
5. //megint kiírja a tartalmát. Azt várnám, hogy ugyanazt írja ki, mint az előbbi kiiratásnál, hiszen nem az $adapter->dataTable->Row értékét változtattam, hanem a $table->Row attribútumának értékét. Azonban a kiiratás a megváltozott Row attribútummal írja ki a táblát. De miért? Ezt csak akkor tudnám elképzelni, hogy ha az $adapter->GetData() függvény referenciaként adná vissza a $dataTable attribútumát. De egy darab & sem szerepel a GetData függvényben, nem akarom referenciaként visszaadni. Mit nézek el?

Remélem érthető. Köszi előre is.

Lev
 
1

Feature

Protezis · 2009. Már. 7. (Szo), 11.40