Warnung ausgelöst: count(): Parameter muss ein Array oder ein Objekt sein, das Countable implementiert


Harry Bosch

Während dem Benutzen "laravel/framework": "5.8.*",

Ich bekomme folgenden Fehler:

    $user = App\User::find(314);
    dump(PHP_VERSION);
    dump(is_object($user));
    dump(is_array($user));
    dump(count($user));
    dd($user);

Ich bekomme folgenden Fehler count(): Parameter must be an array or an object that implements Countable

Aber wenn ich die Warnung stumm schalte Wir erhalten die richtige Ausgabe@dump(count($user));

"7.2.19"
true
false
1
User {#821 ▼
  #table: "users"
  #guarded: array:5 [▶]

....


Hinweis: count() funktioniert, wenn die Sammlung mehr als 1 enthält.

    $users = App\User::find([12,13,14,15,165,166,1666,133,11,111]);
    dump(PHP_VERSION);
    dump(is_object($user));
    dump(is_array($user));
    dump(count($user));
    dd($user);

Ausgang:

"7.2.19"
true
false
9
Collection {#825 ▼
  #items: array:9 [▶]
}
Harry Bosch

Ich fand dies am nützlichsten für Sammlungen

if(count($user->toArray()) > 0)

vielleicht besser (ungetestet)

count(($user ?? []))

Verwandte Artikel