Печать false в php

Я пытаюсь напечатать следующее заявление:

print false . "\n" . true . "\n"; echo false . (bool)false . "\n" . true . "\n"; print "0" . "\n" . true . "\n"; 

Результат, который я получаю, – всего лишь «1 1 0 1». Ожидаемый результат:

0
1
0
1
0
1

Я использую PHP 5.4.3 MSVC9 x64 Может кто-нибудь объяснить, почему и как я могу сделать это печатать правильный путь?

Related of "Печать false в php"

Это должно сделать трюк. Используйте массив.

 $boolarray = Array(false => 'false', true => 'true'); echo $boolarray[false]," ", $boolarray[true]; 

Выход: false true

Ваша проблема возникает из-за вашего заблуждения оператора + в строках в PHP. Оператор конкатенации строк . поскольку PHP свободно набирается, он не знает, хотите ли вы конкатцировать или добавить строки.

Я сломаю это для вас:

 print false + "\n" + true + "\n"; echo false+(bool)false + "\n" + true + "\n"; print "0" + "\n" + true + "\n"; 

Во-первых, вы можете захотеть выбрать echo или print . Теперь, вперед:

 print false + "\n" + true + "\n"; 

Строки PHP, при добавлении (без контакта) , оцениваются в 0 . Поэтому это утверждение оценивается следующим образом:

 print 0 + 0 + 1 + 0; 

который равен 1 . Остальные следуют этому примеру. Если вы хотите, чтобы ваш код работал, вы должны использовать оператор конкатенации ( . ). Если вы хотите написать True или False как это делает .NET, вы можете написать простую функцию:

 function writeBool($var) { echo ($var) ? "True" : "False"; } 

В соответствии с быстрым набором текста PHP (который отстой, если вы спросите меня), все, что будет оцениваться в true , будет писать «True». Я бы по-прежнему отказывался от использования функции для этого, поскольку вызовы функций на PHP являются дорогостоящими .