Jeśli przekazuję zmienną lub obiekt do wywołania funkcji przez odniesienie, wyobrażam sobie, że unika on tworzenia drugiego obiektu w pamięci, zachowując w ten sposób zasoby? Na przykład:Czy przechodzenie przez odniesienie Unikaj tworzenia nowej zmiennej?
<?php
class CoolObject
{
// Have some properties here
public function __construct()
{
// Do some stuff
}
public function test()
{
echo("Test");
}
}
function doSomething(&$param)
{
// Calls original instance, still only one object in memory
$param->test();
// Does this create a second instance in memory, or just assign
// the reference?
$newObj = $param;
}
// Create 1st instance of object in memory
$myObj = new CoolObject;
// Do a test to determine number of instances created
doSomething($myObj);
?>
Kiedy przypisana zmiennej „przez odniesienie” do $ newObj, to się utworzyć nową pamięć przynosząc liczyć do dwóch, czy też po prostu przekazać odwołanie pozostawiając tylko jeden obiekt ?
Ok, rozumiem to. A co z drugą częścią ... jest $ newObj nową instancją lub "wskaźnikiem" do $ myObj? –