superglobals — PHP разница между Input :: get () и $ _GET []

В чем разница между

Input::get('value')

и это:

$_GET['value']

а когда лучше использовать один из них?

3

Решение

Input :: get () — это функция от Laravel

$email = Input::get('email');

Примечание. Метод «get» используется для всех типов запросов (GET, POST, PUT,
и УДАЛИТЬ), а не только получать запросы.

Получить все входные данные из входного массива:

$array = Input::get();

Получить все входные данные, включая массив $ _FILES:

$input = Input::all();

И $ _GET — это суперглобальная переменная в PHP, используемая для получения параметров из
Строка запроса .

0

Другие решения

Первая строка кода

input::get('value')

это какая-то структура (возможно Ларавел 4.2Обернуть вокруг PHP GET переменные как вторая строка кода

$_GET['value']

который является PHP суперглобальный содержащие те же данные, но в простом ванильном PHP.

Таким образом, разница более или менее синтаксическая, например, как вы префикс, напишите имя и скобки:

Prefix    Name             Parenthesis

-none-    "input::get"        ()
"$"      "_GET"              []

Помимо синтаксических различий, первый — это вызов функции, а другой читает переменную.

Вызов функции позволяет больше взаимодействовать, например, фреймворк может внедрить код для обеспечения дополнительной функциональности в операции «чтение» (возврат / получение значения), например, позволяет указать значение по умолчанию, если вход не задан, что простой ванильный PHP не поддерживал так хорошо в прошлом (Я думаю, что это улучшится в PHP 7, но сейчас не могу найти RFC).

Дело не в том, что PHP не может работать со значениями по умолчанию для несуществующих записей переменных GET, это всего лишь небольшой пример:

$value = isset($_GET['value']) ? $_GET['value'] : null;
12

$ _GET — встроенная переменная PHP.

Это глобальная статическая переменная и имеет несколько плохих качеств, особенно для тестирования. Laravel ввел Input :: get (), чтобы вы могли легко поменять местами реализацию.

В Laravel не должно быть причин использовать $ _GET и использовать Input :: get (), когда это возможно.

1

По-видимому, Input::get() от Laravel, как и то, что сказал @hakre.

$ _GET [‘value’] проанализирует URL, если в нем есть заданное значение.

Например, у нас есть URL http://www.example.com/index.php?myget=value

мы можем использовать $_GET['myget'] чтобы получить его значение так:

echo $_GET['myget'];
// this will print "value"
1
По вопросам рекламы [email protected]