2017-05-02 2 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에서 Traversable인지 감지하는 방법] (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'의 배열이나 인스턴스는 아닙니다. –