NULL 값은 변수에 값이 없음을 표현하는 특별한 값입니다. NULL은 오직 null 타입의 값으로만 가능합니다.

다음과 같다면 변수는 null 로 간주됩니다.:

  • 상수 NULL 이 할당됨.

  • 아직 아무런 값도 지정되지 않은 경우.

  • unset() 된 경우.


null 타입에 대한 값은 오직 하나 대소문자를 구별하지 않는 상수 NULL 밖에 없습니다.


다음 함수 is_null()unset() 을 참고 하세요.

NULL 로 변환하기

변수를 null 로 변환하기 위해서는 (unset) $var 와 같이 하면 변수를제거하거나 unset 하지 않고, 오직 NULL 만 리턴할 것입니다.

add a note add a note

User Contributed Notes 5 notes

8 years ago
Note: empty array is converted to null by non-strict equal '==' comparison. Use is_null() or '===' if there is possible of getting empty array.

$a = array();

$a == null  <== return true
$a === null < == return false
is_null($a) <== return false
1 year ago
Note: Non Strict Comparison '==' returns bool(true) for

null == 0 <-- returns true

Use Strict Comparison Instead

null === 0 <-- returns false
Hayley Watson
1 year ago
NULL is supposed to indicate the absence of a value, rather than being thought of as a value itself. It's the empty slot, it's the missing information, it's the unanswered question. It's not a jumped-up zero or empty set.

This is why a variable containing a NULL is considered to be unset: it doesn't have a value. Setting a variable to NULL is telling it to forget its value without providing a replacement value to remember instead. The variable remains so that you can give it a proper value to remember later; this is especially important when the variable is an array element or object property.

It's a bit of semantic awkwardness to speak of a "null value", but if a variable can exist without having a value, the language and implementation have to have something to represent that situation. Because someone will ask. If only to see if the slot has been filled.
kuzawinski dot marcin at NOSPAM dot gmail dot com
5 years ago
Funny. It looks like, that there is one, and only one possible value for variable $a that will pass this test:

($a != NULL) && ((bool)$a == NULL)

It's "0" and it works because casting string "0" to boolean gives FALSE (and it's the only non empty string, that works this way). So remember that casting is not "transitive".
nl-x at bita dot nl
12 years ago
Watch out. You can define a new constant with the name NULL with define("NULL","FOO");. But you must use the function constant("NULL"); to get it's value. NULL without the function call to the constant() function will still retrieve the special type NULL value.
Within a class there is no problem, as const NULL="Foo"; will be accessible as myClass::NULL.
To Top