Jac*_*son 8 laravel laravel-5.1
Laravel where与whereLoose方法有什么区别?
文件说:
where():where方法在检查项目值时使用严格比较.使用whereLoose方法使用"松散"比较进行过滤.
whereLoose():该方法与where方法具有相同的签名; 但是,所有值都使用"松散"比较进行比较.
在这种情况下,"松散比较"是什么意思?
Jos*_*ber 14
该where方法使用严格比较(===),这意味着它还检查值的类型.例如,如果一个是字符串而另一个是数字,则它不会匹配.
该whereLoose方法使用松散比较(==),这意味着它不会检查值的类型.例如,如果一个是字符串而另一个是数字,如果它们的值相同,它仍将匹配.
$collection = collect([['price' => 100], ['price' => 200]]);
$collection->where('price', '100'); // []
$collection->whereLoose('price', '100'); // [['price' => 100]]
Run Code Online (Sandbox Code Playgroud)
您可以在PHP文档中找到所有差异的表格.
注意:这将在Laravel 5.3中发生变化:该where方法现在将使用松散比较,并且该whereLoose方法将被删除.要使用严格相等,您将===作为第二个参数传递:
$collection = collect([['price' => 100], ['price' => 200]]);
$collection->where('price', '100'); // [['price' => 100]]
$collection->where('price', '===', '100'); // []
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3896 次 |
| 最近记录: |