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