Passer un objet en paramètre en PHP

En Java, je peux passer un objet directement dans le paramètre

public int foo (Bar bar)
{
    ... call the methods from Bar class
}

Alors, comment puis-je faire la même chose avec PHP. Merci
C'est mon code:

class Photo
{
    private $id, $name, $description;
    public function Photo($id, $name, $description)
    {
        $this->id = $id;
        $this->name = $name;
        $this->description = $description;
    }
}
class Photos
{
    private $id = 0;
    private $photos = array();

    private function add(Photo $photo)
    {
        array_push($this->photos, $photo);
    }
    public function addPhoto($name, $description)
    {
        add(new Photo(++$this->id, $name, $description));
    }
}
$photos = new Photos();
$photos->addPhoto('a', 'fsdfasd');
var_dump($photos); //blank

Si je change la fonction ajouter

function add($name, $description)
{
    array_push($this->photos, new Photo(++$this->id, $name, $description));
}

Il fonctionne tout à fait. Alors Quel est le problème ?

Avez-vous essayé de faire cela? Si oui, peut-on voir le code? Quel est le problème? Avez-vous une erreur? Voir aussi le manuel PHP sur les objets et les arguments de la fonction.
Exactement de la même manière.
Si je change la fonction ajouter [...] Il fonctionne tout à fait. Alors Quel est le problème ? C'est à vous de nous le dire. Qu'attendez-vous de se produire et ce qui se passe? Avez-vous un message d'erreur etc. De ce que je peux voir, vous devez appeler la fonction comme $this->add(...) pas seulement add(...).

OriginalL'auteur Hoan | 2012-02-17