0

这实际上是 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

4 回答 4

2

代替

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

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

如果你回显true而不是"true",它将输出1并且没有任何内容false

于 2013-05-22T11:21:01.310 回答
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;
   }
于 2013-05-22T11:23:51.907 回答
0

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

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

..

于 2013-05-22T11:32:19.407 回答
0

1and'1'已经是真的,并且0已经'0'是假的,所以你可以直接在你的 if 语句中使用它们。阅读有关 PHP 布尔值的更多信息。

如果您需要根据 bool 回显一个字符串,即'true'or ,您可以使用三元运算符'false'进行简化:

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

在你的情况下:

echo $smof_data['slider_loop'] ? 'true' : 'false';
于 2013-05-22T11:40:11.220 回答