마스터 여러분, debug_zval_dump와 xdebug_debug_zval에서 얻은 refcount가 왜 다른지 여쭤보고 싶습니다.
예:
<code> $var = "laruence"; $var_1 = &$var; $var_2 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; //debug_zval_dump得到的refcount等于1 //xdebug_debug_zval得到的refcount等于3 </code>
refcount가 이 zval 컨테이너를 가리키는 변수 이름의 수를 나타낸다는 내용을 온라인에서 읽었지만 여전히 결과가 일관되지 않는 이유를 모르겠습니다. 이 기능에 대한 자세한 소개를 찾지 못했습니다. . .
그러나 나는 다음과 같은 규칙을 세웠습니다.
변수 참조가 있는 경우 xdebug_debug_zval을 사용하여 얻은 결과는 다음과 같습니다. is_ref=1;refcount=변수 참조 수(변수 자체 계산)
예를 들어
<code> $var = "laruence"; //第1次 $var_1 = &$var; //第2次 $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>
따라서 xdebug_debug_zval에서 is_red=1;refcount=2;를 얻을 수 있습니다.
변수가 참조되지 않은 경우 xdebug_debug_zval을 사용하여 얻은 결과는 다음과 같습니다. is_ref=0;refcount=복사된 변수 수(변수 자체 계산)
예를 들어
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>
따라서 xdebug_debug_zval에서 is_red=0;refcount=5;를 얻을 수 있습니다.
변수 참조가 있는 경우 debug_zval_dump 사용 결과는 다음과 같습니다. refcount=1(항상 = 1)
예를 들어
<code> $var = "laruence"; $var_1 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>
그래서 debug_zval_dump에서 다음을 얻을 수 있습니다: refcount=1
변수가 참조되지 않는 경우 debug_zval_dump를 사용하여 얻은 결과는 다음과 같습니다. refcount = 변수 복사본 수(변수 자체 계산) + 1
예를 들어
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>
따라서 xdebug_debug_zval에서 is_red=0;refcount=6;을 얻을 수 있습니다.
마스터 여러분, debug_zval_dump와 xdebug_debug_zval에서 얻은 refcount가 왜 다른지 여쭤보고 싶습니다.
예:
<code> $var = "laruence"; $var_1 = &$var; $var_2 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; //debug_zval_dump得到的refcount等于1 //xdebug_debug_zval得到的refcount等于3 </code>
refcount가 이 zval 컨테이너를 가리키는 변수 이름의 수를 나타낸다는 내용을 온라인에서 읽었지만 여전히 결과가 일관되지 않는 이유를 모르겠습니다. 이 기능에 대한 자세한 소개를 찾지 못했습니다. . .
그러나 나는 다음과 같은 규칙을 세웠습니다.
변수 참조가 있는 경우 xdebug_debug_zval을 사용하여 얻은 결과는 다음과 같습니다. is_ref=1;refcount=변수 참조 수(변수 자체 계산)
예를 들어
<code> $var = "laruence"; //第1次 $var_1 = &$var; //第2次 $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>
따라서 xdebug_debug_zval에서 is_red=1;refcount=2;를 얻을 수 있습니다.
변수가 참조되지 않은 경우 xdebug_debug_zval을 사용하여 얻은 결과는 다음과 같습니다. is_ref=0;refcount=복사된 변수 수(변수 자체 계산)
예를 들어
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>
따라서 xdebug_debug_zval에서 is_red=0;refcount=5;를 얻을 수 있습니다.
변수 참조가 있는 경우 debug_zval_dump 사용 결과는 다음과 같습니다. refcount=1(항상 = 1)
예를 들어
<code> $var = "laruence"; $var_1 = &$var; $var1 = $var; $var2 = $var; $var3 = $var; $var4 = $var; </code>
그래서 debug_zval_dump에서 다음을 얻을 수 있습니다: refcount=1
변수가 참조되지 않는 경우 debug_zval_dump를 사용하여 얻은 결과는 다음과 같습니다. refcount = 변수 복사본 수(변수 자체 계산) + 1
예를 들어
<code> $var = "laruence"; //第1次 $var1 = $var; //第2次 $var2 = $var; //第3次 $var3 = $var; //第4次 $var4 = $var; //第5次 </code>
따라서 xdebug_debug_zval에서 is_red=0;refcount=6;을 얻을 수 있습니다.