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