Comment accéder aux propriétés dans PHP ?
P粉518799557
2023-09-05 18:50:40
<p>Suivi basé sur ce document : https://www.php.net/manual/en/lingual.oop5.references.php</p>
<blockquote>
<p>Un point clé de la programmation orientée objet PHP qui est souvent mentionné est que "les objets sont passés par référence par défaut". Ce n'est pas tout à fait exact. </p>
</blockquote>
<blockquote>
<p>En PHP, les variables d'objet ne contiennent pas l'objet lui-même comme valeur. Il contient simplement un identifiant d'objet qui permet aux accesseurs d'objet de trouver l'objet réel. </p>
</blockquote>
<p>Comment cela fonctionne-t-il concrètement ? Par exemple, en C++, l'opérateur flèche semble implicitement déréférencer le pointeur puis accéder à la propriété comme si elle était accessible sur la variable objet elle-même. </p>
<p>Voici comment je le comprends :</p>
<pre class="brush:php;toolbar:false;">obj->prop
(*obj).prop // Équivalent à la ligne ci-dessus</pre>
<p>Cela a l’air très soigné. Dans les deux cas, l'appel de propriété est la somme de l'adresse de la variable objet et du décalage de la propriété. </p>
<p>Mais comment ça marche en PHP ?
La documentation suggère qu'un pointeur ne stocke pas une adresse mémoire, mais un « identifiant d'objet ». L'accès aux propriétés en PHP est-il un processus hautement abstrait, ou résout-il l'identifiant de l'objet en une adresse mémoire, puis y accède-t-il de la même manière que C++/Java, etc. ? </p>
Il s'agit d'un processus hautement abstrait, et la similitude de syntaxe ne signifie pas que le code « tombera » dans un fonctionnement comme C/C++. Vous pouvez explorer le code pour voir comment il fonctionne sous le capot.