when X=NULL
if(X): 0
is set: 0
is empty: 1
is null: 1

when X=NULL
if(X): 0
is set: 0
is empty: 1
is null: 1

when X=int(0)
if(X): 0
is set: 1
is empty: 1
is null: 0

when X=string(1) "0"
if(X): 0
is set: 1
is empty: 1
is null: 0

when X=string(0) ""
if(X): 0
is set: 1
is empty: 1
is null: 0

when X=array(0) { }
if(X): 0
is set: 1
is empty: 1
is null: 0

when X=array(0) { }
if(X): 0
is set: 1
is empty: 1
is null: 0

when X=string(1) " "
if(X): 1
is set: 1
is empty: 0
is null: 0

when X=int(1)
if(X): 1
is set: 1
is empty: 0
is null: 0

when X=string(1) "1"
if(X): 1
is set: 1
is empty: 0
is null: 0

when X=string(6) "string"
if(X): 1
is set: 1
is empty: 0
is null: 0