好的,首先,这是一个非常特殊的问题。我在 PHP 上工作了很长时间,我不知道为什么会这样。
我有一个功能 adminUpdate。此函数将返回 true。我将它设置为始终返回 true 以进行测试。
然后我有函数得到这个结果。
static function result2JSON($result,$options = array()) {
if($result == "permission") {
echo "permission";
}
if($result == true) {
echo "true";
}
switch ($result) {
case 'permission':
die($result."xxx permission");
$json = self::setJSON("Permission");
break;
case 'exist':
$json = self::setJSON("Exist");
break;
case false:
$json = self::setJSON("Error");
break;
case "":
$json = self::setJSON("Error");
break;
case 1 :
$json = self::setJSON("OK");
break;
case true:
$json = self::setJSON("OK");
break;
default:
$json = self::setJSON("OK");
break;
}
$json = array_merge($json,$options);
return $json;
}
这些“Echo”用于测试这种情况。因此,$result 在被此函数采用之前总是 = true。
但这是我得到的输出:
permissiontrueResult = 1 IN permission section
这意味着 $result = Permission ,然后 == true,然后 == "permission" on switch。这是为什么 ?