2016-09-23 3 views
0
$comet = $this->model->getActiveComet($userId); 
$string = 'notificationComet'; 

if ($comet !== $string) { 
    echo $comet; 
    echo $string; 
    echo "yes";exit; 
    } 

, как показано в приведенном выше коде, только если значение $comet не соответствует $string он должен выполнять независимо внутри скобок, таким образом выход.удачливый, если же сравнивает ошибочно

Но оба из них, имеющие такое же значение, которое «notificationComet»

Я испытал GetType() обеих переменных, и они возвращают строку как тип.
Я использовал != вместо !==, без разницы.
если я изменю условие на это: if ($comet === $string) блок внутри не выполняется.

Я просто не понимаю, почему это условие true для if ($comet !== $string), поскольку они оба имеют одинаковое значение?

Пожалуйста, объясните мне кого-нибудь, где я совершил ошибку?

+0

Вы попробовали 'var_dump' как для' $ comet', так и '$ string'? –

+0

может показать значение в '$ comet', что может быть причиной ошибки. – Sasikumar

+0

Почему бы не использовать 'strcmp' – piyushj

ответ

2

Попробуйте использовать следующие ...

$comet = $this->model->getActiveComet($userId); 
$string = 'notificationComet'; 

if (strpos($comet,$string) === FALSE) { 
    echo $comet; 
    echo $string; 
    echo "yes";exit; 
    } 

Я считаю, что будет работать.

+0

да работает ... в чем проблема и почему нужно использовать strpos? – 112233

+0

'strpos' - фактически подстрочный вид функции, я бы не рекомендовал его. Но в любом случае это зависит от того, как вы хотите его использовать. – piyushj

+0

@KEREN. strpos используется для поиска позиции первого вхождения подстроки в строке. Вы можете использовать ее как рекомендуется для любого экземпляра строки. – victor

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