2017-09-18 10 views
0

Je lis sur les modèles de conception en PHP et je continue à voir la syntaxe suivante, par exemplenom de classe dans la méthode avec la variable

abstract class AbstractObserver { 
    abstract function update(AbstractSubject $subject_in); 
} 

ou

class PatternObserver extends AbstractObserver { 
    public function __construct() { 
    } 
    public function update(AbstractSubject $subject) { 
    } 
} 

(code fait partie de this exemple

où "AbstractSubject" est une autre classe abstraite.

Je suis habitué à définir des méthodes comme methodName($var), sans inclure de nom de classe, comme methodName(className $var). Alors, que fait réellement le nom de la classe dans une méthode? Ma meilleure supposition est qu'elle passe quelque chose comme une référence dans cette classe? Pouvez-vous m'expliquer ce que ça fait réellement?

Merci

+1

Cela s'appelle [Type Hinting] (http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration), et il définit le type de données que l'argument doit être –

Répondre