<?php
class Foo { public $bar; }
$foo = new Foo;
$arr = array("", " ", FALSE, TRUE, array(), NULL, "0", 0, 0.0, new stdClass, $foo, $foo->bar, "\0");
define('PAD', 20);
$headings = array('type', 'if', 'isset', 'empty', 'is_null');
// foreach($headings as $heading){ echo str_pad($heading, PAD), " | "; }
echo "\n";
$x = str_pad("TRUE", PAD) . " | ";
$y = str_pad("", PAD) . " | ";
foreach($arr as $val){
$a = debug_zval_dump($val);
var_dump($a);
/*
echo str_pad(print($val), PAD), " | ";
echo $val ? $x : $y;
echo isset($val) ? $x : $y;
echo empty($val) ? $x : $y;
echo is_null($val) ? $x : $y;
*/
echo "\n";
}
- Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- string(0) "" interned
NULL
string(1) " " interned
NULL
bool(false)
NULL
bool(true)
NULL
array(0) interned {
}
NULL
NULL
NULL
string(1) "0" interned
NULL
int(0)
NULL
float(0)
NULL
object(stdClass)#2 (0) refcount(3){
}
NULL
object(Foo)#1 (1) refcount(4){
["bar"]=>
NULL
}
NULL
NULL
NULL
string(1) " " interned
NULL
- Output for 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30
- string(0) "" refcount(1)
NULL
string(1) " " refcount(1)
NULL
bool(false)
NULL
bool(true)
NULL
array(0) refcount(1){
}
NULL
NULL
NULL
string(1) "0" refcount(1)
NULL
int(0)
NULL
float(0)
NULL
object(stdClass)#2 (0) refcount(3){
}
NULL
object(Foo)#1 (1) refcount(4){
["bar"]=>
NULL
}
NULL
NULL
NULL
string(1) " " refcount(1)
NULL
- Output for 7.1.0, 7.1.7 - 7.1.20, 7.2.0 - 7.2.33
- string(0) "" refcount(1)
NULL
string(1) " " refcount(1)
NULL
bool(false)
NULL
bool(true)
NULL
array(0) refcount(4){
}
NULL
NULL
NULL
string(1) "0" refcount(1)
NULL
int(0)
NULL
float(0)
NULL
object(stdClass)#2 (0) refcount(3){
}
NULL
object(Foo)#1 (1) refcount(4){
["bar"]=>
NULL
}
NULL
NULL
NULL
string(1) " " refcount(1)
NULL
- Output for 7.1.5 - 7.1.6
- string(0) "" refcount(4)
NULL
string(1) " " refcount(4)
NULL
bool(false)
NULL
bool(true)
NULL
array(0) refcount(4){
}
NULL
NULL
NULL
string(1) "0" refcount(4)
NULL
int(0)
NULL
float(0)
NULL
object(stdClass)#2 (0) refcount(3){
}
NULL
object(Foo)#1 (1) refcount(4){
["bar"]=>
NULL
}
NULL
NULL
NULL
string(1) " " refcount(4)
NULL
- Output for 7.0.0 - 7.0.20
- string(0) "" refcount(1)
NULL
string(1) " " refcount(1)
NULL
bool(false)
NULL
bool(true)
NULL
array(0) refcount(3){
}
NULL
NULL
NULL
string(1) "0" refcount(1)
NULL
int(0)
NULL
float(0)
NULL
object(stdClass)#2 (0) refcount(3){
}
NULL
object(Foo)#1 (1) refcount(4){
["bar"]=>
NULL
}
NULL
NULL
NULL
string(1) " " refcount(1)
NULL
- Output for 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
- string(0) "" refcount(3)
NULL
string(1) " " refcount(3)
NULL
bool(false) refcount(3)
NULL
bool(true) refcount(3)
NULL
array(0) refcount(3){
}
NULL
NULL refcount(3)
NULL
string(1) "0" refcount(3)
NULL
long(0) refcount(3)
NULL
double(0) refcount(3)
NULL
object(stdClass)#2 (0) refcount(3){
}
NULL
object(Foo)#1 (1) refcount(4){
["bar"]=>
NULL refcount(3)
}
NULL
NULL refcount(5)
NULL
string(1) " " refcount(3)
NULL
preferences:
195.1 ms | 403 KiB | 228 Q