Je veux savoir si une variable est une collection.
Je ne peux pas utiliser is_object () car ce sera vrai même si ce n'est pas une collection. Pour l'instant j'utilise ça, et ça marche:
if(is_object($images) && get_class($images) != 'Illuminate\Database\Eloquent\Collection') {
Mais je pense que c'est si moche que je passe du temps à vous demander une autre solution.
Avez-vous une idée?
Ne pourriez-vous pas utiliser
if(is_a($images, 'Illuminate\Database\Eloquent\Collection')) {
....do whatever for a collection....
} else {
....do whatever for not a collection....
}
Ou
if ($images instanceof Illuminate\Database\Eloquent\Collection) {
}
La classe utilisée est incorrecte ici. Dans un sens général, vous devriez tester la classe de base.
use Illuminate\Support\Collection;
....
if($images instanceof Collection) {
....
}
Je voulais juste corriger une erreur que j'ai rencontrée sur cette réponse.
Notez que instanceof
exclut a (obj) ou le nom de la classe sans guillemets
$images instanceof Illuminate\Database\Eloquent\Collection
De plus, il est intéressant de noter qu'il existe une différence de vitesse/performances en utilisant instanceof
sur is_a
, mais cela ne vous concerne probablement pas si vous êtes comme moi et que vous cherchiez en premier lieu une réponse à cette question.