PHP :: get()和$ _GET []之间的差异

时间:2015-05-02 08:02:44

标签: php superglobals

之间有什么区别
private void startAnimation(){
    Animation rotation = AnimationUtils.loadAnimation(getContext(), R.anim.clockwise_rotation);
    mImageView.startAnimation(rotation);
}

private void stopAnimation(){
    mImageView.clearAnimation();
}

和此:

Input::get('value') 

何时更好地使用其中一个?

4 个答案:

答案 0 :(得分:12)

第一行代码

input::get('value')

Laravel 4.2的一些框架(可能是PHP GET variables)包装,就像第二行代码一样

$_GET['value']

这是一个PHP superglobal,包含相同的数据但是普通的PHP。

所以差异或多或少是语法上的,例如如何添加前缀,写下名称和括号:

Prefix    Name             Parenthesis

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

除了语法差异之外,第一个是函数调用,而另一个是读取变量。

函数调用允许更多交互,例如框架可以注入代码以在“读取”操作中提供额外的功能(返回/获取值),比如允许在未设置输入的情况下指定默认值,这种普通的PHP在过去不能很好地支持(我认为在PHP 7中会有一个改进,但现在无法找到RFC。)

不是PHP不能处理不存在的GET变量条目的默认值,它只是一些小样板:

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

答案 1 :(得分:1)

显然,Input::get()来自Laravel就像@hakre所说的那样。

$ _ GET [' value']会解析网址中的设置值。

例如,我们有一个网址http://www.example.com/index.php?myget=value

我们可以使用$_GET['myget']来获取其值,如下所示:

echo $_GET['myget'];
// this will print "value"

答案 2 :(得分:1)

$ _ GET是PHP内置变量。

它是全局静态变量,具有一些不良品质,尤其适用于测试。 Laravel引入了Input :: get(),因此您可以轻松地交换实现。

在Laravel中,没有理由使用$ _GET并尽可能使用Input :: get()。

答案 3 :(得分:0)

Input :: get()是Laravel的一个函数

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

注意:" get"方法用于所有请求类型(GET,POST,PUT,   和DELETE),而不仅仅是GET请求。

从输入数组中检索所有输入:

$array = Input::get();

检索所有输入,包括$ _FILES数组:

$input = Input::all();
  

$ _GET是PHP中的超全局变量,用于从中获取参数   querystring。