xdebug がインストールされている場合は、xdebug_debug_zval() を使用して「zval」情報を表示できます。以下の通り:
結果:
str:
(refcount=1, is_ref=0),
文字列 'jb51.net' (length=10)
「refcount」が 0 になるときに変数コンテナが破棄される場合のみ。変数を unset() すると、目的の「zval」の refcount が 1 減ります。数日前に発生した参照の設定解除について話しましょう 質問:
結果:
b:
(refcount=1, is_ref=0), string 'aaa' (length=3)
参照カウンタの問題の話を続けますが、型に準拠する配列とオブジェクトの状況は異なります:
結果:
arr:
(refcount=1, is_ref=0),
array
'a' => (refcount=1, is_ref=0),string 'aaa' (length=3)
'b' => refcount=1, is_ref=0),string 'bbb' (length=3)
arr:
(refcount=1, is_ref=0),
array
'a' => (refcount=2, is_ref=0) ,文字列 'aaa' (長さ=3)
'b' => (refcount=1, is_ref=0),文字列 'bbb' (長さ=3)
'aaa' => (refcount=2, is_ref= 0)、文字列 'aaa' (長さ=3)
元の配列要素と新しく追加された配列要素が、「refcount」2 の同じ zval 変数コンテナーに関連付けられていることがわかります。私は他の人にインスピレーションを与えるためにここにいます。
PHP リファレンス カウンタの詳細については、マニュアルを参照してください: http://php.net/manual/zh/features.gc.refcounting-basics.php