Передаются ли объекты в PHP по значению или по ссылке?

В этом коде:

<?php
class Foo
{
    var $value;

    function foo($value)
    {
        $this->setValue($value);
    }

    function setValue($value)
    {
        $this->value=$value;
    }
}

class Bar
{
    var $foos=array();

    function Bar()
    {
        for ($x=1; $x<=10; $x++)
        {
            $this->foos[$x]=new Foo("Foo # $x");
        }
    }

    function getFoo($index)
    {
        return $this->foos[$index];
    }

    function test()
    {
        $testFoo=$this->getFoo(5);
        $testFoo->setValue("My value has now changed");
    }
}
?>

Когда методBar::test() запускается и изменяет значение foo # 5 в массиве объектов foo, будет ли затронуто действительное foo # 5 в массиве, или$testFoo переменная будет только локальной переменной, которая перестала бы существовать в конце функции?

Ответы на вопрос(3)

Ваш ответ на вопрос