2017-05-02 12 views
4

PHP> = 7.1の場合は、変数が反復可能かどうかをis_iterable()で検出することができます。反復可能な内容をチェックするPHP

この代替手段はPHP < = 7ですか?

php 7.0で作業しているので、これをどのように実行できますか?

+0

[traversable](http://php.net/manual/en/class.traversable.php)はあなたを助けますか? –

+0

[オブジェクトがPHPでトラバース可能かどうかを検出する方法](http://stackoverflow.com/questions/31701517/how-to-detect-if-object-is-traversable-in-php) –

+0

@ManojSalviこの質問の答えは配列を尊重していません – Philipp

答えて

5

与えられたvarの型がTraversableの場合、または配列の場合は、テストするだけです。他のすべては反復可能ではありません。

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

これを将来のために安全に保つために'if(!function_exists( 'is_iterable')){...} 'で説明します。プロバイダや他の人がPHPのバージョンを更新しているかどうかは誰にも知られていません。 – Marcel

+1

@Marcel updated – Philipp

+0

クラス 'stdClass'のオブジェクトは反復可能ですが、' Traversable'の配列やインスタンスではありません。 –

関連する問題