Fat Free Framework использует $args['name'] или PARAM.name для параметров маршрута?
В коде Fat Free Framework и его примерах в Интернете я иногда вижу параметры URL, на которые ссылаются так:
route_func($f3, $args) {
echo $args['name']
}
я также вижу:
route_func($f3, $args) {
$param=$f3->get('PARAMS.name');
echo $param;
}
Какой метод предпочтительнее? Есть ли какие-либо предостережения для одного или другого?
1 ответ
PARAMS
переменная может быть доступна из любого места в коде, поэтому $f3->get('PARAMS.name')
работает везде.
В любом случае, для удобства, во время маршрутизации параметры маршрута передаются обработчику маршрута. Таким образом, вы можете сэкономить одну строку кода, используя 2-й аргумент, передаваемый обработчику маршрута.
Другими словами, 2 приведенных вами примера эквивалентны, поэтому выберите тот, который вы понимаете лучше всего.
Посмотрите этот ответ для более подробной информации об аргументах, передаваемых во время маршрутизации.
НОТА:
Как предположил @user3587554, два синтаксиса различаются при обработке несуществующих ключей: $args['name']
выдает ошибку $f3->get('PARAMS.name')
возвращает NULL. Таким образом, чтобы быть полностью идентичным, первый синтаксис должен быть @$args['name']
, Но в большинстве случаев эта мера предосторожности бесполезна, так как нет сомнений в отношении названий параметров.