什么是两者之间的区别?
何时更好地使用它们中的一个?
Input::get('value')
并且这个:
$_GET['value']
何时更好地使用它们中的一个?
Input::get('value')
并且这个:
$_GET['value']
代码的第一行
input::get('value')
这是一些框架(可能是Laravel 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;
显然,Input::get()
与@hakre所说的一样,都来自于Laravel。
如果URL中有设置值,$_GET['value']
将解析该URL。
例如,我们有一个URL:http://www.example.com/index.php?myget=value
我们可以使用$_GET['myget']
来获取它的值,如下所示:
echo $_GET['myget'];
// this will print "value"
Input::get() 是 Laravel 中的一个函数
$email = Input::get('email');
$array = Input::get();
获取所有输入,包括 $_FILES 数组:
$input = Input::all();
$_GET是PHP内置变量。
它是全局静态变量,有几个不良特性,特别是在测试方面。 Laravel引入了Input::get(),因此您可以轻松地交换实现。
在Laravel中,没有理由使用$_GET,尽可能使用Input::get()。
input::get()
的来源 - 你使用的是哪个框架? - halferInput::get()
。 - Kevin