2016-12-13 4 views
-1

변수가 값없이 만들어지면 자동으로 NULL 값이 지정됩니다.변수의 'NULL'값이 echo 및 print를 사용하여 표시되지 않고 var_dump() 함수와 함께 표시되는 이유는 무엇입니까?

나는 다음과 같은 코드 조각이 :

<?php 
    $name; 
    echo $name;  
?> 

및 위의 코드 조각 '출력 모두 다음과 같습니다

<?php 
    $name; 
    print $name;  
?> 

를 (정확히 동일합니다) :

Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 7 

다른 코드 스 니펫이 있습니다 :

<?php 
    $name; 
    var_dump($name);  
?> 

위의 출력은 (마지막) 코드는 다음과 같습니다 : 나는 에코를 사용하여 표시하려고 할 때 값 "NULL"이 표시 점점되지 않는 이유

Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 8 
NULL 

그래서, 내 질문은 인쇄 해?

그러나 var_dump() 함수를 사용하여 표시하려고하면 "NULL"값이 표시됩니다.

왜 이런 일이 발생하고 있습니까?

이 문제는 무엇입니까?

감사합니다.

+1

의 길이를했다 테스트을 포함하는 문자열 때문에'echo'와 '인쇄 두 '암시 ​​적으로 값을 문자열로 변환합니다. 그리고'(string) NULL'은 빈 문자열입니다. 그래서 당신은 그것을 볼 수 없습니다. 그리고 그 목적에 따른'var_dump'는 그대로 덤프를 던지지 않습니다. – zerkms

+0

@zerkms : var_dump() 함수의 출력으로 볼 때 화면에 문자열 "NULL"이 표시됩니다. 이 문자열은 데이터 형식이거나 빈 변수의 값입니까? – user2839497

+0

그것은 'NULL'타입의 'NULL'값입니다. http://php.net/manual/en/language.types.php http://php.net/manual/en/language.types.null.php – zerkms

답변

4

문제는 NULL이 이 아닌 것입니다. - 값이 없습니다.

당신은 $name의 값이 아무것도 설정되어 있기 때문에 echo 또는 print을, 당신은 정의되지 않은 변수에 대한 통지를받을 때, 당신은 무언가를하지 echo 부재를 할 수 있습니다.

$name; 
var_dump($name); 

이의 출력은 NULL 변수가 값이 없다고 말씀하는 것입니다. 그것은 이 아니며 값이 "NULL"인 문자열입니다. NULL이거나 아무것도 없으며 무언가가 없습니다.

는 다음이 비교 :

$name = ''; 
var_dump($name); 

string(0)"" 출력 -이 $name는 길이 총에 문자를 포함하지 않는 문자열 ("")이었다 값을 가지고 DID 있음을 말하고있다 .

마지막으로, 다음과 같은보고 :

$name = 'test'; 
var_dump($name); 

string(4)"test" 출력 - 4

+0

당신은 는 데이터 유형 "NULL"이며 "NULL"값이 아닙니다. – user2839497

+0

거의 - NULL은 값이나 데이터 유형이 아니며 값이 없음을 나타내는 상수입니다. 이것은 특별한 경우입니다. –

+1

"가치가 없다." --- 오해의 소지가 있습니다. '$ a = null;'<-이 문장에서는 변수에 특정 값을 명시 적으로 할당했습니다. – zerkms