Поскольку я посетил эту страницу несколько раз, я решил опубликовать пример сравнительного теста.
Результаты:
"" -> false
"abc" -> true
0 -> false
0 -> false
0.1 -> true
1 -> true
1.1 -> true
25 -> true
null -> false
[] -> false
[1] -> true
object(stdClass) -> true
Код:
$objects = [
"",
"abc",
0,
0.0,
0.1,
1,
1.1,
25,
null,
[],
[1],
new stdClass(),
];
foreach ($objects as $obj) {
$state = "false";
if ($obj) {
$state = "true";
}
if (is_string($obj)) {
if (strlen($obj) == 0) {
$obj = "\"\"";
} else {
$obj = "\"{$obj}\"";
}
}
if (is_array($obj)) {
if (count($obj) == 0) {
$obj = "[]";
} else {
$obj = json_encode($obj);
}
}
if (is_null($obj)) {
$obj = "null";
}
if (is_object($obj)) {
$obj = "object(stdClass)";
}
echo str_pad((string)$obj, 5, " ") . " -> {$state}" . PHP_EOL;
}
Протестировано на 64-битной Windows 10 с использованием PHP 7.2.5.