Я хочу узнать, является ли переменная коллекцией.
Я не могу использовать is_object (), потому что это будет правда, даже если это не коллекция. Пока я использую это, и он работает:
if(is_object($images) && get_class($images) != 'Illuminate\Database\Eloquent\Collection') {
Но я думаю, что это так уродливо, что я трачу время на то, чтобы расспрашивать о другом решении.
Есть ли у вас какие-либо идеи?
Не могли бы вы использовать
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) { }
Просто хотел исправить ошибку, на которую я наткнулся на этот ответ.
Обратите внимание, что instanceof
исключает либо a (obj), либо имя класса без кавычек
$images instanceof Illuminate\Database\Eloquent\Collection
Кроме того, интересно, что существует разница скорости и производительности, использующая instanceof
над is_a
, но это, вероятно, не относится к вам, если вы похожи на меня и в первую очередь искали ответ на этот вопрос.
Используемый класс здесь неверен. В общем, вы должны тестировать базовый класс.
use Illuminate\Support\Collection; .... if($images instanceof Collection) { .... }