Si paso una variable u objeto a una llamada de función por referencia, me imagino que evita crear un segundo objeto en la memoria, preservando así los recursos. Por ejemplo:Pasa por referencia ¿Evita crear una nueva variable?
<?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);
?>
Cuando me asignaron la "referencia" variable $ newObj, lo hizo crear uno nuevo en la memoria con lo que el contar hasta dos, o en qué acaba de pasar la referencia sigue dejando sólo un objeto ?
Ok, entiendo eso. ¿Qué pasa con la segunda parte ... es $ newObj una nueva instancia o un "puntero" a $ myObj? –