2016-11-03 6 views
1

debug_zval_dump()が出力するrefcountを理解できません。なぜ私はdebug_zval_dump()を使用してrefcountは1ですか? PHP

<?php 
    $str = "test function"; 
    $sr1 = ''; 
    $str1 = & $str; 

    debug_zval_dump($str); 

上記のコードの出力:文字列(13) "テスト機能" 参照カウント(1)

iは$ strの前にアンパサンドを削除:

<?php 
    $str = "test function"; 
    $sr1 = ''; 
    $str1 = $str; 

    debug_zval_dump($str); 

出力の上記のコード:文字列(13) "テスト関数" refcount(3)

何が起こったのですか?最初のrefcountは "1"ですが、3回も参照されていると思います。

+1

[なぜrefcountは2ではないのですか?](http://stackoverflow.com/questions/4221645/why-the-refcount-is-2-not-1) – JYoThI

答えて

0

$ strのコピーが作成されているため、関数が呼び出されたためです。

関連する問題