PHP проблема со строками сравнения - PullRequest
0 голосов
/ 12 января 2012

Я пишу относительно простое утверждение if для обработки ответа веб-службы

Приведенный ниже код выведет тип возвращаемых данных и их значение:

$response = $client->__getLastResponse();
echo $response;
echo gettype($response);

Для правильного ответа я получаю 'истинную строку'
Для неправильного ответа я получаю 'ложную строку'

Поэтому мне нужен оператор if для обработки, является ли он истинным или ложным:

if($response == "true"){
    echo "Logged In";
} else {
    echo "Not Logged In";
}

Какой бы ответ я ни получал, я всегда получаю "Not Logged In"

Я тоже пробовал оператор ===, но безрезультатно.

Можеткто-нибудь поможет?

1 Ответ

2 голосов
/ 12 января 2012

Для правильного ответа я получаю 'истинную строку' За неправильный ответ я получаю «ложную строку»

При условии, что это ваш настоящий код, у вас есть echo $response . gettype( $response ), который выдает "истинную строку", верно? Если так, то есть пробел после «true». Попробуйте обрезать ответ:

<?php
$response = $client->__getLastResponse();
if( strtolower( trim( $response ) ) === 'true' ) {
   echo 'response is true.';
}

Кроме того, отладка действительно проста с использованием var_dump, поскольку она будет отображать кавычки вокруг значения и общей длины строки, что значительно упростит обнаружение дополнительного пространства.

...