Fat Free Framework使用$ args [' name']或PARAM.name作为路由参数?

时间:2014-05-12 10:46:44

标签: php variables parameters url-routing fat-free-framework

在Fat Free Framework代码和在线示例中,我有时会看到像这样引用的URL参数:

route_func($f3, $args) {  
     echo $args['name'] 
}

我也看到了:

route_func($f3, $args) {  
    $param=$f3->get('PARAMS.name');      
    echo $param;
}

首选哪种方法?对于其中一个有什么警告吗?

1 个答案:

答案 0 :(得分:2)

可以从代码中的任何位置访问PARAMS变量,因此$f3->get('PARAMS.name')无处不在。

无论如何,为了方便起见,在路由时,路由参数被传递给路由处理程序。因此,您可以使用传递给路由处理程序的第二个参数来节省一行代码。

换句话说,您提供的2个示例是等效的,因此请选择您最了解的示例。

有关在路由时传递的参数的更多详细信息,请参阅this answer

注意:

正如@ user3587554建议的那样,2个语法在处理不存在的键时有所不同:$args['name']$f3->get('PARAMS.name')返回NULL时抛出错误。所以要完全相同,第一个语法应该是@$args['name']。但大多数时候,这种预防措施毫无用处,因为毫无疑问的是参数名称。