変数がコレクションであるかどうかを知りたいです。
Is_object()を使用することはできません。コレクションではない場合でもtrueになるためです。今のところ私はこれを使用し、それは動作します:
if(is_object($images) && get_class($images) != 'Illuminate\Database\Eloquent\Collection') {
しかし、私は非常にsoいので、別の解決策について質問するのに時間を費やすと思います。
何かアイデアはありますか?
使用できませんでした
if(is_a($images, 'Illuminate\Database\Eloquent\Collection')) {
....do whatever for a collection....
} else {
....do whatever for not a collection....
}
または
if ($images instanceof Illuminate\Database\Eloquent\Collection) {
}
ここで使用されているクラスは正しくありません。一般的な意味では、基本クラスをテストする必要があります。
use Illuminate\Support\Collection;
....
if($images instanceof Collection) {
....
}
この答えで私が遭遇したエラーを修正したかっただけです。
instanceof
は、(obj)または引用符なしのクラス名を除くことに注意してください。
$images instanceof Illuminate\Database\Eloquent\Collection
また、興味深いことに、instanceof
over is_a
を使用すると速度とパフォーマンスの違いがありますが、あなたが私のようで、最初にこの質問に対する答えを探していた場合、おそらくこれは関係ありません場所。