2014-01-15 4 views
0

У меня возникли проблемы при попытке сравнить строки в инструкции «if».Сравнение строк с использованием == в a, если

if ($alarmonoff == "on") { 
    echo("checked"); 
} 
else { 
    echo("unchecked"); 
} 

В моем коде, даже если $ alarmonoff содержит «на» (проверено, отображая его перед оператором), отображаемый текст по-прежнему «снят». Что-то не так? Не правильный ли мой синтаксис?

Заранее благодарен!

EDIT: Как я не могу опубликовать код в ответах на комментарии, я размещаю это здесь, когда пользователь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"); 
     } 
    } 
?> 
+2

проверить пробелы и невидимые символы, такие как chr (13), chr (10) ... – Sebas

+4

Сомнительные. В коде, который вы показываете, нет ничего плохого. Сделайте 'var_dump ($ alarmonoff)' – Brad

+0

. Я был бы более склонен думать, что $ alarmonoff не устанавливается должным образом. – brandonscript

ответ

1

Может попробовать использовать этот

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

Таким образом, вы знаете, что у вас нет пустого пространства и случайный капитал не аннулирует свой чек.

Просмотрев контекст кода, $ alarmonoff выходит за пределы области действия, вы ссылаетесь на глобальную переменную в локальной области.

Добавить

global $alarmonoff; 

в верхней части функции alarmonoffcheck() для ссылки на глобальную переменную, которая была определена ранее.

+0

Спасибо, но он по-прежнему не работает:/ –

+0

Не могли бы вы разместить еще какой-нибудь код для контекста, возможно, какой-нибудь фрагмент, где он был установлен? Также убедитесь, что он находится в том же объеме, что и этот блок. –

+0

Конечно, проверьте мой оригинальный вопрос для кода, я его отредактировал! –

Смежные вопросы