ホームページ  >  記事  >  バックエンド開発  >  PHP の debug_zval_dump と xdebug_debug_zval について

PHP の debug_zval_dump と xdebug_debug_zval について

WBOY
WBOYオリジナル
2016-10-23 00:12:55964ブラウズ

親愛なるマスターの皆様、debug_zval_dumpxdebug_debug_zvalによって取得されるrefcountが異なるのはなぜですか?
例:

リーリー

refcount はこの zval コンテナを指す変数名の数を示すとオンラインで読みましたが、なぜ結果が矛盾するのかはまだわかりません。この機能の詳細な紹介は見つかりませんでした。 。 。

しかし、私は次のルールをまとめました:


xdebug_debug_zval について:

  • 変数参照がある場合、xdebug_debug_zvalを使用した結果は、 is_ref=1;refcount=変数参照数(変数自体をカウント)となります

例えば

リーリー

つまり、xdebug_debug_zval から is_red=1;refcount=2; を取得できます。

  • 変数が参照されていない場合、xdebug_debug_zvalを使用して得られる結果は: is_ref=0;refcount=コピーされた変数の数(変数自体をカウントします)

例えば

リーリー

つまり、xdebug_debug_zval から is_red=0;refcount=5; を取得できます。

debug_zval_dump について:

    変数参照がある場合、debug_zval_dumpを使用した結果はrefcount=1(常に1)となります
  • 例えば
リーリー

つまり、debug_zval_dump から次を取得できます: refcount=1;

    変数が参照されていない場合、debug_zval_dumpを使用して得られる結果は: refcount = 変数のコピー数(変数自体をカウント) + 1
  • 例えば
リーリー

つまり、xdebug_debug_zval から is_red=0;refcount=6; を取得できます。

返信内容:

親愛なるマスターの皆様、

debug_zval_dump

xdebug_debug_zvalによって取得されるrefcountが異なるのはなぜですか? 例: リーリー refcount はこの zval コンテナを指す変数名の数を示すとオンラインで読みましたが、なぜ結果が矛盾するのかはまだわかりません。この機能の詳細な紹介は見つかりませんでした。 。 。

しかし、私は次のルールを要約しました:

xdebug_debug_zval について:

変数参照がある場合、xdebug_debug_zvalを使用した結果は、 is_ref=1;refcount=変数参照数(変数自体をカウント)となります
  • 例えば
  • リーリー
つまり、xdebug_debug_zval から is_red=1;refcount=2; を取得できます。

変数が参照されていない場合、xdebug_debug_zvalを使用して得られる結果は: is_ref=0;refcount=コピーされた変数の数(変数自体をカウントします)

  • 例えば

    リーリー
  • つまり、xdebug_debug_zval から is_red=0;refcount=5; を取得できます。

debug_zval_dump について:

変数参照がある場合、debug_zval_dumpを使用した結果はrefcount=1(常に1)となります

  • 例えば

    リーリー

    つまり、debug_zval_dump から次を取得できます: refcount=1;

変数が参照されていない場合、debug_zval_dumpを使用して得られる結果は: refcount = 変数のコピー数(変数自体をカウント) + 1

  • 例えば

    リーリー

    つまり、xdebug_debug_zval から is_red=0;refcount=6; を取得できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。