Laravel 4:输入::有()+输入::获得()与($ var =输入:get()) ! =零


Laravel 4: Input::has() + Input::get() vs. ($var = Input::get()) != null

当检查输入值是否存在并将其分配给变量时,我认为有两种方法可以实现这一点:

if(Input::has('id')) {
    $id = Input::get('id');
    // do some stuff
}

或者更短的if(Input::has('id') && $id = Input::get('id')) {...},和

$id = Input::get('id');
if($id != null) {
    // do some stuff
}

分别为if(($id = Input::get('id')) != null) {...} .

显然,第一个方法更像是Laravel的方式,可能更直观(至少阅读),但一方面,第二个方法似乎更快,因为它涉及更少的方法调用,而另一方面,在id == null的情况下,由于不必要的变量赋值,可能更慢。

那么,有没有一种更喜欢的方式,或者可能还有一些我(尚未)意识到的其他问题?

比起毫秒级的代码执行速度,我更喜欢代码的可读性。

if(Input::has('id')) {
    $id = Input::get('id');
    // do some stuff
}

可能会慢一些,但这并不重要。

我更喜欢你的第一种方式:

if(Input::has('id')) {
    $id = Input::get('id');
    // do some stuff
}

因为速度是不重要的,你有更重要的事情来优化和加速。

你可以这样做,

if ($id = Input::get('id', null)) {
    // do some stuff
}

get的第二个参数是在没有id输入时返回的默认值。

我认为你可以像这样使用Input的默认值

$id = Input::get('id'); // the default value will be null if you have no id parameter
if(!is_null($id)){ 
  // do your code here
}