PHP字符串比较的麻烦

时间:2012-01-12 12:48:28

标签: php string comparison operators

我正在编写一个相对简单的if语句来处理Web服务的响应

以下代码将输出返回的数据类型及其值:

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

为了得到正确的回答,我得到了真正的字符串'
对于错误的回复,我会得到错误的字符串'

所以我需要一个if语句来处理它是真还是假:

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

无论我得到什么回应,我总是会收到"未登录"

我也试过了===运算符,但无济于事。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

  

为了得到正确答案,我得到'真正的字符串'   对于不正确的回复,我得到'假字符串'

如果您是实际代码,那么echo $response . gettype( $response )会产生“真正的字符串”,对吧?如果是这样,那么“真实”之后就有一个空格。尝试修剪响应:

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

除此之外,使用var_dump调试非常简单,因为它会在值和字符串的总长度周围显示引号,使弹出的附加空间更容易被发现。