我正在使用laravel框架項目並面臨以下問題。爲什麼Laravel返回數組無法使用empty()但是使用count()
查詢:
$query = DB::table('test');
$query->select('*');
$query->where('testId = 1');
$result = $query->get();
print_r($result);
輸出:
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
)
)
現在我檢查$result
有記錄與否。
if(empty($result))
{
echo "Not Empty check with empty()";
}
if(count($result) == 0)
{
echo "Not Empty check with count()";
}
輸出:
Not Empty check with count()
問:
我用empty()
在所有的項目,但在laravel框架項目我無法知道,爲什麼這個$result
進入count()
狀態,不進入empty()
。
注:
我已閱讀,計數()是緩慢的比較空()也空()檢查變量被設置或不那麼我在所有返回數組或對象數組使用空() 。
請幫助別人。
在此先感謝!
您的查詢返回的結果,而不是空所以計數總是大於零,用!empty($ result)條件檢查 –
但是在上面的情況下,爲什麼它要count()而不是在empty()中。這個數組不會返回數據庫中的值,所以empty()會給出true,這是不正確的。 @RAUSHANKUMAR – RJParikh
作爲第一個()查詢返回一個集合對象,所以更好地使用isEmpty()函數 –