PHP 内のプロパティにアクセスするにはどうすればよいですか?
P粉518799557
2023-09-05 18:50:40
<p>このドキュメントに基づいてフォローアップします: https://www.php.net/manual/en/ language.oop5.references.php</p>
<ブロック引用>
<p>PHP オブジェクト指向プログラミングの重要なポイントは、「デフォルトではオブジェクトが参照によって渡される」ということです。これは完全に正しいわけではありません。 </p>
</blockquote>
<ブロック引用>
<p>PHP では、オブジェクト変数にはオブジェクト自体が値として含まれません。これには、オブジェクト アクセサーが実際のオブジェクトを検索できるようにするオブジェクト識別子が含まれているだけです。 </p>
</blockquote>
<p>これは実際にどのように機能するのでしょうか?たとえば、C では、アロー演算子は暗黙的にポインターを逆参照し、オブジェクト変数自体にアクセスするかのようにプロパティにアクセスするようです。 </p>
<p>これは私がそれを理解する方法です:</p>
<pre class="brush:php;toolbar:false;">obj->prop
(*obj).prop // 上の行と同等</pre>
<p>これはとてもきれいに見えます。どちらの場合も、プロパティ呼び出しはオブジェクト変数アドレスとプロパティ オフセットの合計です。 </p>
<p>しかし、これは PHP ではどのように機能するのでしょうか?
ドキュメントでは、ポインタはメモリ アドレスではなく、「オブジェクト識別子」を格納することを示唆しています。 PHP でのプロパティへのアクセスは非常に抽象的なプロセスですか、それともオブジェクト識別子をメモリ アドレスに解決して、C/Java などと同様にそれにアクセスしますか? </p>
これは非常に抽象的なプロセスであり、構文の類似性は、コードが C/C のように動作することを意味するものではありません。 コードを詳しく調べると、内部でどのように動作するかを確認できます。