在if中使用==比较字符串

时间:2014-01-15 17:59:51

标签: php

我在尝试比较“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");
        }
    }
?>

1 个答案:

答案 0 :(得分:1)

也许尝试使用此

$alarmonoff = strtolower(trim($alarmonoff));

通过这种方式,您知道没有空格,随机资金不会使您的支票无效。

在查看代码的上下文后,$ alarmonoff超出了范围,您在本地范围内引用了一个全局变量。

添加

global $alarmonoff;

位于函数alarmonoffcheck()的顶部,用于引用先前定义的全局变量。