需要帮助转换布尔值

时间:2013-05-22 11:18:19

标签: php boolean

这实际上是WordPress,但我认为它更多的是PHP问题。

我正在使用SMOF框架(用于主题选项设置)和flexslider。要结合使用它们,在flexslider选项之一中,我必须使用“true”还是“false”。问题是,SMOF返回“0”和“1”而不是“真”或“假” - 这个词。所以我需要将“0”转换为“false”,将“1”转换为“true”

我有这段代码:

function isBoolean($slider_loop) {
    $slider_loop = $smof_data['slider_loop'];
   if ($slider_loop === "true") {
      return true;
   } else {
      return false;
   }
   return $slider_loop;
}

...,然后在flexslider的“侧面”:

animationLoop: "<?php echo isBoolean($slider_loop); ?>"

但它不起作用。

理想情况下,它应该是这样的:

animationLoop: "<?php echo $smof_data['slider_loop'] 
// this return "0" and "1", while it should be "true" or "false" for flexslider to work ?>"

那么,我应该怎么做呢?

提前致谢。

4 个答案:

答案 0 :(得分:2)

替换

animationLoop: "<?php echo isBoolean($slider_loop); ?>"

animationLoop: "<?php echo ($slider_loop == 1) ? 'true' : 'false'; ?>"

如果您回复true而不是"true",则会输出1而不会出现false

答案 1 :(得分:1)

我不确定我完全理解这个问题。 你说SMOF返回“0”和“1”,但你做了这样的检查:

if($slider_loop === "true")

好吧,首先“true” true 不同。一个是字符串,另一个是布尔值。

我想我会这样做:

   $slider_loop = (int)$smof_data['slider_loop'];
   if ($slider_loop) {
      return true;
   } else {
      return false;
   }

答案 2 :(得分:0)

你如何利用动态类型和类型转换?它很简单:

return (bool)$smof_data['slider_loop'];

...

答案 3 :(得分:0)

1'1'已经很简单,而且0'0'已经是假的,所以您可以直接在if语句中使用它们。 Read more about PHP Booleans

如果您需要根据bool(即'true''false')回显字符串,可以使用ternary operator进行简化:

echo $value ? 'true' : 'false';

在你的情况下:

echo $smof_data['slider_loop'] ? 'true' : 'false';