2017-10-02 4 views
0

Je suis en train de lire un livre sur PHP et la conception orientée objet. J'ai trouvé des exemples de code sur la façon dont l'auteur utilise les parenthèses qui m'intriguent un peu. Je vous laisse une paire d'échantillons ci-dessous:Utilisation de parenthèses

Premier échantillon:

print "Author: {$product->getProduct()}; 

Deuxième exemple:

$b = "{$this->title} ({$this->producerMainName}, "; 
$b .= "{$this->producerFirstName})"; 
$b .= ": page count - {$this->nPages}"; 

Tout ce que je sais print construction, est que les crochets autour des arguments ne sont pas nécessaires (http://php.net/manual/en/function.print.php).

En outre, avec une référence spécifique au second exemple, je me demande pourquoi l'auteur a décidé d'utiliser des parenthèses même rondes: cela ne serait-il pas redondant? Est-ce que c'est juste pour améliorer la lisibilité, ou y a-t-il d'autres raisons que je ne peux pas imaginer?

+0

les accolades sont obligatoires dès que la variable à développer à l'intérieur de la chaîne entre guillemets est quelque chose de plus compliqué que ** $ variable ** – Calimero

Répondre

1

C'est en fait assez simple. Dans un contexte de chaîne, comme lorsqu'il est placé entre guillemets, lorsque vous devez analyser un attribut d'objet comme une méthode ou une propriété, vous l'enveloppez dans des accolades.

Donc, cela peut aider à expliquer la déclaration: print "Author: {$product->getProduct()};

Maintenant deuxième exemple est juste une extension de la première, où l'auteur a utilisé plusieurs lignes et entre parenthèses pour une meilleure lisibilité. Il peut être écrit aussi:

$b = "{$this->title}"; 
$b .= "({$this->producerMainName},{$this->producerFirstName})"; 
$b .= ": page count - {$this->nPages}"; 

ici en supposant que nous avions des valeurs suivantes:

$this->title = "Author Details "; 
$this->producerMainName = "Doe"; 
$this->producerFirstName = "John"; 
$this->nPages = 10; 

Alors si nous avions repris $b après les missions ci-dessus, nous obtenons:

Author Details (Doe,John): page count - 10

+0

Merci pour votre réponse agréable et claire raidenace. – artib