这实际上是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 ?>"
那么,我应该怎么做呢?
提前致谢。
答案 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';