2010-12-13 10 views
1

J'ai une question de syntaxe à propos de PHP OOP.PHP OOP question

J'ai deux fonctions.

public function setBody($body) { 
    $this->body = $body; 
} 

public function return_value($value) { 
    return $value; 
} 

$ body est déclaré plus haut dans la fonction. si je veux appeler la fonction return_value (que je réalise ne fait rien - c'est juste un exemple pour moi d'utiliser pour apprendre) sur setBody, quelle est la syntaxe pour cela? J'ai essayé $this->body = return_value($body) et cela n'a pas fonctionné. J'ai également essayé return_value($this->body) comme deuxième ligne aussi, et cela n'a pas fonctionné non plus.

Merci d'avance pour votre aide.

Répondre

7

Vous devez faire ceci:

public function setBody($body) { 
    $this->body = $this->return_value($body); 
    // Make a reference to the object you are dealing with -- return_body 
    // is not a global function -- it's a method of the object you are creating. 
} 

public function return_value($value) { 
    return $value; 
} 
+2

Juste une note, l'utilisation du ' Le mot-clé $ this' (ou 'this') est obligatoire en PHP, mais pas dans la plupart des langages de programmation OO (comme C++, C# et Java). Je pense que c'est ce qui pourrait être confus OP. – netcoder

+0

@netcoder - bon point, et merci pour les informations supplémentaires! –

5

Vous utilisez la notation $this-> à la fois sur la propriété et la méthode, comme ceci:

public function setBody($body) { 
    $this->body = $this->return_value($body); 
} 
+0

Merci pour les réponses rapides! – sehummel

+3

@ shummel7845: N'oubliez pas de cliquer sur la coche à côté de la réponse qui vous aide le mieux, pour la marquer comme acceptée. Vous devriez également faire la même chose pour vos questions précédentes. – BoltClock