2011-12-23 2 views
1

이것은 내 설정입니다.
display_startup_errors = on
display_errors = 켜짐
error_reporting = E_ALL | E_STRICT
PHP에서 '기호'/ '변수 이름'은 언제 만들어 집니까?

//code1: 
$a = "abcd"; 
xdebug_debug_zval('a'); 

위의 코드 라인은 zval 컨테이너를 생성하고 기호에 '와 연결합니다. 그리고 다음과 같은 o/p를 줄 것입니다.

a: (refcount=1, is_ref=0)='abcd' 

이제 folowing 코드를 살펴

//code2: 
$a; 
echo":";xdebug_debug_zval('a'); echo "<br/>"; 
$a = "abcd"; 
xdebug_debug_zval('a'); echo "<br/>"; 

는 O/P를 생성하는 것; 발

: 
a: (refcount=1, is_ref=0)='abcd' 

PHP 매뉴얼의 Reference Counting Basics하십시오 새로운 변수

이 그런 뜻과 상수 값 생성 될 때 zval 용기

1] 어떤 심볼이 없으며, 작성된 코드 2의 행 1과 유사한 코드$a;이 발생했습니다.        부터 xdebug_debug_zval은 기호/변수 이름 'a'를 찾지 못합니다. 성명에 따라         Reference Counting Basics은 zval 컨테이너가 생성되지 않습니다.
2] 코드 2의 행 3과 유사한 코드$a = "abcd";이 발생하는 경우에만 심볼이 생성됩니다.         즉 심볼 얻는 변수가 zval 용기 생성 Reference Counting Basics에서         문에 따라 일정한 값 &와 연관되고 '는'는         심볼과 연관되는 경우에만 생성. 그리고 코드 2의 라인 1, 즉 $a;은 쓸모없는 코드입니다.

xdebug_debug_zval 정보는 here입니다.

+1

, 어, 알? –

+0

@ IgnacioVazquez-Abrams 실례합니다. 무엇을 말할 작정입니까? – ThinkingMonkey

+3

존재하지 않는 변수에서 읽으려고 할 때 표시되는주의 사항. 물론, 당신은 당신이 통지를 보여주는이 @ –

답변

0


$b; 
xdebug_debug_zval('b'); echo "<br/> "; 
echo $b; 

위의 코드를 출력 할 것이다 :

공지 : 정의되지 않은 변수 「어떤 광고 번호 '

라인 B에 /path/to/file/file.php

xdebug_debug_zval하지만 위의 코드에서 오류를 throw하지 않습니다!

Assigining $ 바 상수 값

$b = "hello"; 
xdebug_debug_zval('b'); echo "<br/> "; 
echo $b; 

B (참조 카운트 = 1 is_ref = 0) = 헬로 '안녕하세요'

상기 코드는 증명하는 '기호 '/'변수 이름 '은 상수가 연결된 경우에만 생성됩니다

'기호 '/'변수 이름 '은 zval이 생성 될 가능성이있을 때 생성됩니다.

변수에 NULL이 지정되면 심볼을 만들 수 있습니다.

$b = null; 
xdebug_debug_zval('b'); echo "<br/> "; 
echo $b; 

위의 코드 출력 :

B : (refcount는 = 1, is_ref = 0) = NULL 당신이주의 했는가

관련 문제