我有这样一段小代码:
$company = array('relation' => $_SESSION['username']);
$companyresponse = $wcfclient->GetCompany($company);
foreach ($companyresponse->GetCompanyResult as $key => $value){
echo $value[0]; //This is the name of the company
if ($value[1] == TRUE){
echo "Company blocked";
}
elseif($value[1] == FALSE){
echo "Company NOT blocked";
}
echo $value[1]; //This gives me the correct result, in this case: FALSE
$value[1]的结果是FALSE,虽然当它通过我的if语句时返回了"公司被阻止",所以$value[1]是TRUE,但它应该是FALSE。有人能告诉我为什么它没有返回正确的值吗?
我也尝试过这样做:
if ($value[1] == 1){
echo "Company blocked";
}
else{
echo "Company NOT blocked";
}
这给我一个FALSE的值,但不知怎么的,if语句把它变成了TRUE。
var_dump($value[1])
当我尝试一个通常被屏蔽的公司时,它会给出正确的结果:
string(4) "True" 公司已被屏蔽True
if
语句之前添加var_dump($value[1])
来确保值。同时使用===
替代==
。 - RRikesh""
或字符串零"0"
的字符串都会被评估为 TRUE。这意味着"hello"
,"true"
,"false"
,"foo bar"
都会被评估为 TRUE,无论字符串本身说什么。换句话说,"True"
评估为 TRUE,"False"
也评估为 TRUE。 - BLaZuRE