Join Up!
104887 members and counting!

 
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links 
search for in the  
previousVysvětlení referencí (odkazů)Co reference nejsounext
Last updated: Sun, 27 Oct 2002
view the printer friendly version or the printer friendly version with notes or change language to German | Spanish

Co reference dělají

PHP reference umožňují zajistit, aby dvě proměnné odkazovaly na tentýž obsah. Tzn. když provedete:

$a =& $b

znamená to, že $a a $b ukazují na stejnou proměnnou.

Poznámka: $a a $b jsou zde úplně ekvivalentní, tj. nikoliv že $a ukazuje na $b apod., nýbrž že $a a $b ukazují na stejné místo.

Stejná syntaxe se může použít s funkcemi, které vrací reference a s operátorem new (v PHP 4.0.4 a pozdějších):

$bar =& new fooclass();
$foo =& find_var ($bar);

Poznámka: Nepoužití operátoru & způsobí zkopírování objektu. Když ve třídě použijete $this, bude se pracovat s aktuální instancí třídy. Přiřazení bez & zkopíruje instanci (např. objektu) a $this bude pracovat s touto kopií, což není vždy to, co se požaduje. Většinou chcete mít jedinou instanci, s níž budete pracovat, kvůli rychlosti a alokaci paměti.

Druhou věcí, kterou reference dělají, je předávání proměnných odkazem. To se dělá vytvořením lokální proměnné ve funkci a proměnné v kontextu volajícího prostředí, kdy se odkazuje na tentýž obsah. Například:

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);

nastaví do $a hodnotu 6. To proto, že ve funkci foo proměnná $var odkazuje tentýž obsah jako $a. Viz detailnější vysvětlení o předávání odkazem.

Třetí věcí, kterou mohou reference dělat, je vracení přes reference.

User Contributed Notes
Co reference dělají
add a note about notes
There are no user contributed notes for this page.
previousVysvětlení referencí (odkazů)Co reference nejsounext
Last updated: Sun, 27 Oct 2002
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by: http://phpbuilder.com/
Last updated: Thu Oct 31 18:34:28 2002 EST