我在尝试比较“if”语句中的字符串时遇到了麻烦。
if ($alarmonoff == "on") {
echo("checked");
}
else {
echo("unchecked");
}
在我的代码中,即使$ alarmonoff包含“on”(通过在语句之前显示它来检查),显示的文本仍然是“未选中”。有什么不对的吗?我的语法不正确吗?
提前致谢!
编辑:因为我无法在回答评论中发布代码,所以我在这里发布这个用户689问。 $ alarmonoff变量来自JSON字符串:<?php
$handle = fopen("./settings.json","r");
$settings = fread($handle, 512);
$jsonsettings = json_decode($settings, true);
extract($jsonsettings);
fclose($handle);
$alarmonoff = strtolower(trim($alarmonoff));
echo $alarmonoff;
function alarmonoffcheck () {
if ($alarmonoff == "on") {
echo("checked");
}
else {
echo("unchecked");
}
}
?>
答案 0 :(得分:1)
也许尝试使用此
$alarmonoff = strtolower(trim($alarmonoff));
通过这种方式,您知道没有空格,随机资金不会使您的支票无效。
在查看代码的上下文后,$ alarmonoff超出了范围,您在本地范围内引用了一个全局变量。
添加
global $alarmonoff;
位于函数alarmonoffcheck()的顶部,用于引用先前定义的全局变量。