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
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
Vous devez vous connecter pour publier un commentaire.
Vous le faire exactement de la même manière, avec quelques modifications de syntaxe, bien sûr:
Garder à l'esprit que vous ne pouvez type de l'indice pour des classes et des tableaux.
OriginalL'auteur Tim Cooper