OK、まず、これは非常に特殊な問題です。私は長い間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;
}
これらの「エコー」は、この場合のテストに使用されます。したがって、この関数が取得する前に $result は常に = true になります。
しかし、これは私が得た出力です:
permissiontrueResult = 1 IN permission section
つまり、スイッチで $result = Permission 、次に == true 、次に == "permission" を意味します。何故ですか ?