我试图让这个工作起来,我是苗条框架的新手
$app->get('/GetIpInfo/{format}/{ip}/{api_key}', function($request, $response, $args){
global $dbc;
$ip = $args['ip'];
$private_key = $args['api_key'];
$format = $args['format'];
if($format != "xml" or $format!= "json")
{
echo "unknown format parameter sent";
die();
}
如果我执行xml或json无关紧要,它总是输出未知格式参数发送
答案 0 :(得分:1)
您的问题只是正确理解逻辑运算符。看:
if($format != "xml" or $format!= "json")
根据这个陈述,如果$format
等于" xml",则第一个比较为假,然后计算第二个,这是真的。所以它进入并返回"未知格式"
如果$ format等于" json",第一次比较是真的,它会进入"如果"并返回"未知格式" ,而不考虑第二部分。
我相信你想要的东西:
if($format != "xml" and $format!= "json")
这样它只会返回"未知格式"如果不是xml也不是json。 如果您使用OR,它将在任何评估为true时立即进入。如果你使用AND,它会在任何一个是假的时候立即拒绝。
修改强>
我认为值得一提的是你的代码上有一个tautology,即它总是会被评估为true并返回"未知格式" 而不管输入。原因如上所示。