라이브러리

[PHP] EmptyIterator::valid - 현재 요소가 유효한지 확인합니다.




EmptyIterator::valid()

`EmptyIterator`는 PHP 7.1.0 버전부터 지원하는 내장 클래스입니다. 이 클래스는 비어있는 이터레이터를 나타내며, `valid()` 메소드를 사용하여 이터레이터가 비어있는지 확인할 수 있습니다.

`valid()` 메소드는 이터레이터가 현재 위치에 있는 요소를 참조할 수 있는지 확인합니다. 이터레이터가 비어있을 때, `valid()` 메소드는 `false`를 반환합니다.

예제

#hostingforum.kr
php

// 비어있는 이터레이터 생성

$emptyIterator = new EmptyIterator();



// valid() 메소드 호출

var_dump($emptyIterator->valid()); // bool(false)



// 이터레이터에 요소를 추가

$emptyIterator->append('요소1');

$emptyIterator->append('요소2');



// valid() 메소드 호출

var_dump($emptyIterator->valid()); // bool(true)



EmptyIterator 클래스

#hostingforum.kr
php

class EmptyIterator implements Iterator {

    private $elements = [];



    public function append($element) {

        $this->elements[] = $element;

    }



    public function rewind() {

        reset($this->elements);

    }



    public function current() {

        return current($this->elements);

    }



    public function key() {

        return key($this->elements);

    }



    public function next() {

        next($this->elements);

    }



    public function valid() {

        return !empty($this->elements);

    }

}



Iterator 인터페이스

#hostingforum.kr
php

interface Iterator {

    public function rewind();

    public function current();

    public function key();

    public function next();

    public function valid();

}



IteratorAggregate 인터페이스

#hostingforum.kr
php

interface IteratorAggregate {

    public function getIterator();

}



예제 2

#hostingforum.kr
php

// 비어있는 이터레이터 생성

$emptyIterator = new EmptyIterator();



// foreach 문을 사용하여 이터레이터를 반복

foreach ($emptyIterator as $key => $value) {

    var_dump($key);

    var_dump($value);

}

// bool(false)

// bool(false)



// 이터레이터에 요소를 추가

$emptyIterator->append('요소1');

$emptyIterator->append('요소2');



// foreach 문을 사용하여 이터레이터를 반복

foreach ($emptyIterator as $key => $value) {

    var_dump($key);

    var_dump($value);

}

// int(0)

// string(5) "요소1"

// int(1)

// string(5) "요소2"



이 예제에서는 `EmptyIterator` 클래스를 사용하여 비어있는 이터레이터를 생성하고, `valid()` 메소드를 사용하여 이터레이터가 비어있는지 확인합니다. 또한 `foreach` 문을 사용하여 이터레이터를 반복하고, 이터레이터가 비어있는지 확인합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 588 페이지

검색

게시물 검색