変数の参照カウントの問題

WBOY
WBOYオリジナル
2016-06-23 13:49:07765ブラウズ

変数参照は人々を狂わせる
引用、分離、コピーオンライト、チェンジオンライトはどうなる...
例:

<?php$a = 1;$b = & $a;xdebug_debug_zval('a');debug_zval_dump($a);/*结果b:(refcount=2, is_ref=1),int 1long(1) refcount(1)*/

refcount テストの結果は異なる、xdebug または組み込みの debug_zval_dump は正確か?


ディスカッションへの返信 (解決策)

debug_zval_dump($a); を呼び出すとき、debug_zval_dump 呼び出しは次の状況を参照できます。 $b= &$a


$c=$a

参考 http://www.laruence.com/2008/09/19/520.html


参考 http://www.laruence.com/2008 /09/19/520 .html

これは、この記事を読んだ後に私が抱えていた問題です

2 つの関数のレポートにある「refcount」は同じ意味ではありません

半分の意味で混同しないでください。情報を得た記事


2 つの関数のレポートにある「refcount」は同じではありません 意味

中途半端な情報を記事に混同しないでください

では、これらは何を意味するのでしょうか?


これら 2 つの関数は参照カウントを確認するために使用されませんか?



どちらもアプリケーション数を確認するために使用されます debug_zval_dump($a); use Referenceメソッド debug_zval_dump(&$a); 呼び出しは以下の状況と同じなので、読み取りと書き込みの分離が発生します

$a= 1;

$b= &$a

$c=$a


xdebug_debug_zval は実際の参照カウントであり、debug_zval_dump はパラメータ





を渡すので参照カウント +1 になります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。