以下の3つのエリアから構成されています。共用体の中のメンバーです。これらのメンバーをソース中に記載することはまずありません。ディレクトリ配下にある膨大なマクロを駆使して、これらのメンバーにアクセスすることになります。開発する分には特に意識する必要はありません。利用の際はこれらのいずれか一つを選択することになります。オブジェクトの型と、それに対応するプロパティを以下に示しますします。Z_FUNC(zval)それぞれのプロパティに対して、対応するアクセサ・マクロが用意されています。ポインタ渡しの場合のマクロ等のバリエーションについては後述します。いったプロパティで管理されています。以下のように定義されています。10これらは必ずしも同じレベルではありません。マクロを使っている限りは、これらの差異を意識しなくても済みます。以上の型については、それぞれに独自のコンストラクタとデストラクタを持つ場合があります。前項の型を判定するためのマクロや、値にアクセスするためのアクセサ・マクロには、値渡し以外にポインタ渡しバージョンもあります。代入用マクロには、直に値を代入する以外にも、値を初期化したりコピーしたりするものもあります。する返却用マクロが用意されています。内部で使用する特殊な型もあります。これらは関数の戻り値にはなりません。20これらに関するマクロには以下のようなものがあります。っくりと研究する必要があります。文字列や配列等については後述します。