カテゴリー:
リファレンス
閲覧数:501 配信日:2016-03-21 22:21
<リファレンスの詳細>
シンボルテーブルを利用して、「実体(zval No.)」と「変数名」とを連動させること。
※シンボルテーブル - プログラムのソースコード内の各識別子と、それぞれの宣言内容やソース内での見た目(データ型、スコープレベル、位置など)などの情報を結び付けているデータ構造。
※zval - 変数の内部構造。変数名をキーとした連想配列のようなもの。
下記4つの値を保持している。
・type(変数の型)
・value(実際の値)
・is_ref(変数が参照かどうかを示すフラグ)
・refcount(この値を共有しているラベルの数)
※変数名は値が格納されているzvalを探すために使用されるだけで、zvalに付けられたラベルのようなもの
<リファレンスの意義を言い換えると…>
リファレンスの意義とは、
シンボルテーブルを利用して、「実際の値(zval構造体に収納している実体の値)」に、複数の変数名を、割り当てること(実体の別名/alias)により、「一つの共通の値(実体)」を、「複数の異なる変数名」で参照できるようになること。
ちなみに、C言語のポインタとは異なるため、リファレンスを使ってポインタの演算をすることはできない。
また、リファレンスは実メモリのアドレスでもない。
・変数管理の基礎(PHPの参照とは何か)