PHP не выводится false, 0

$test = 0,
$test2 = false;
echo $test.' '.$test2;

Почему? Так же если создать массив и вывести его он будет отображать как [0] => пустота, не понимаю. Мне нужно хранить в переменных эти значения и в дальнейшем выводить.


Ответы (3 шт):

Автор решения: Dodik
$test = 0;
$test2 = false;
$test2 = ($test2) ? 'true' : 'false';
echo $test.' '.$test2;
→ Ссылка
Автор решения: Олександр Слуцький

Дело в том, что есть ЗНАЧЕНИЕ переменной (например, false), а есть СТРОКОВОЕ ПРЕДСТАВЛЕНИЕ (для false оно будет ""(пустая строка)).

Если хотите выводить больше инфы, можете попробовать так:

$test = 0;
$test2 = false;
echo var_export($test, true).' '.var_export($test2, true);
→ Ссылка
Автор решения: Ипатьев

Самый удобный способ выводить значения, которые не являются строками или числами - json_encode(). Такие значения леко читаются и человеком и машиной без всяких танцев вприсядку. То есть такой формат может использоваться не только для вывода, но также для импорта и экспорта любых стркутур данных.

echo json_encode(NULL),"\n";
echo json_encode(FALSE),"\n";
echo json_encode([]),"\n";
echo json_encode(0),"\n";
→ Ссылка