PHP логический к строке с модификацией и условием - PullRequest
5 голосов
/ 09 сентября 2010

Когда echo с логическим значением (true или false), PHP преобразует его в 1 или <nothing> и отображает его. e.g.:

$x = true; echo $x; //displays: 1
$x = false; echo $x; //displays: <nothing>

Мой вопрос: Есть ли функция PHP (если не как ее кодировать), которая может отображать точно "true" или "false" (а не 1 или ничего), если переменная является логическим в противном случае просто отобразить так, как это обычно делает PHP.

Ответы [ 4 ]

8 голосов
/ 04 августа 2011

Я только что искал это, но мне нужно было встроить его без функции, поэтому я просто использовал:

echo(is_bool($x) ? ($x ? "true":"false"):$x);

Не самый простой для чтения, но выполняет свою работу!

7 голосов
/ 09 сентября 2010

Да, это может быть легко закодировано следующим образом:

function var_to_str($in)
{
   if(is_bool($in))
   {
      if($in)
         return "true";
      else
         return "false";
   }
   else
      return $in;
}

//Test it now
echo var_to_str("this is string") . PHP_EOL;
echo var_to_str(123) . PHP_EOL;
echo var_to_str(true) . PHP_EOL;
echo var_to_str(false) . PHP_EOL;

Это выводит:

this is string  
123  
true  
false  
1 голос
/ 25 января 2012
str_replace(array(0, 1), array("No", "Yes"), str_pad(headers_sent(), 1, "0"))

Я использовал headers_sent() просто как переменную BOOLEAN.

0 голосов
/ 11 декабря 2011

У меня была эта проблема, я нашел этот вопрос, и ответ был не совсем то, что мне нужно, поэтому я решил это:

array_pop (array_keys (array ('FALSE' => false, 'TRUE' => true), [bool]))

, чтобы просто получить напечатанное (отраженное) строковое значение для [bool], заменив [bool] на переменную, которую вы знаете как bool.

Думал, что это может помочь другим, кто найдет этот вопрос ....

...