2017-05-02 3 views
4

Wie bei PHP> = 7.1 kann festgestellt werden, ob eine Variable iterierbar ist oder nicht is_iterable().Auf iterierbaren Inhalt prüfen PHP

Gibt es eine Alternative zu PHP < = 7?

wie kann ich das ausführen, seit ich auf php 7.0 arbeite?

+0

Würde [traversable] (http://php.net/manual/en/class.traversable.php) Ihnen helfen? –

+0

Mögliches Duplikat von [Wie zu erkennen, ob Objekt in PHP Traversable ist?] (Http://stackoverflow.com/questions/31701517/how-to-detect-if-object-is-traversable-in-php) –

+0

@ManojSalvi die Antworten für diese Frage nicht respektieren Arrays – Philipp

Antwort

5

Sie müssen nur testen, ob die angegebene Variable vom Typ Traversable ist oder ob es sich um ein Array handelt. Alles andere ist nicht iterierbar.

if (!function_exists('is_iterable')) { 
    function is_iterable($var) 
    { 
     return is_array($var) || $var instanceof \Traversable; 
    } 
} 
+1

decken diese Funktion in'if (! function_exists ('is_iterable')) {...} 'für die Zukunft sicher zu halten. Niemand weiß, ob der Provider oder jemand anderes die PHP-Version aktualisiert. – Marcel

+1

@Marcel aktualisiert – Philipp

+0

Objekte der Klasse 'stdClass' sind iterierbar, sind aber keine Arrays oder Instanzen von' Traversable'. –