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

时间:2015-10-14 12:39:53

标签: php laravel laravel-4

当检查是否存在输入值并将其分配给变量时,我看到两种方法来实现:

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

的情况下不必要的变量赋值

有没有一种方法可以选择或者可能还有其他一些我尚未意识到的问题?

4 个答案:

答案 0 :(得分:3)

我总是希望我的代码能够在几毫秒内更快地执行代码。

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

可能比较慢,但这个数字有点小,无关紧要。

答案 1 :(得分:2)

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

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

因为速度微不足道,所以你有更重要的事情需要优化和加速。

答案 2 :(得分:0)

你可以这样做,

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

如果没有get输入,id的第二个参数是要返回的默认值。

答案 3 :(得分:0)

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

Input