Slim v3 Framework没有正确读取参数

时间:2018-03-27 00:38:29

标签: php slim-3

我试图让这个工作起来,我是苗条框架的新手

$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无关紧要,它总是输出未知格式参数发送

1 个答案:

答案 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并返回"未知格式" 而不管输入。原因如上所示。