在Fat Free Framework代码和在线示例中,我有时会看到像这样引用的URL参数:
route_func($f3, $args) {
echo $args['name']
}
我也看到了:
route_func($f3, $args) {
$param=$f3->get('PARAMS.name');
echo $param;
}
首选哪种方法?对于其中一个有什么警告吗?
答案 0 :(得分:2)
可以从代码中的任何位置访问PARAMS
变量,因此$f3->get('PARAMS.name')
无处不在。
无论如何,为了方便起见,在路由时,路由参数被传递给路由处理程序。因此,您可以使用传递给路由处理程序的第二个参数来节省一行代码。
换句话说,您提供的2个示例是等效的,因此请选择您最了解的示例。
有关在路由时传递的参数的更多详细信息,请参阅this answer。
注意:强>
正如@ user3587554建议的那样,2个语法在处理不存在的键时有所不同:$args['name']
在$f3->get('PARAMS.name')
返回NULL时抛出错误。所以要完全相同,第一个语法应该是@$args['name']
。但大多数时候,这种预防措施毫无用处,因为毫无疑问的是参数名称。