여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP 기초 - 반복 가능
PHP 기초 – 반복 가능
2년전 작성
1년전 수정

반복 가능

iterable은 foreach() 루프를 통해 반복될 수 있는 모든 값이다.

iterable 의사 유형은 PHP 7.1에서 도입되었으며 함수 인수 및 함수 반환 값에 대한 데이터 유형으로 사용할 수 있다.

Iterable 사용

키워드 iterable는 함수 인수의 데이터 유형 또는 함수의 반환 유형으로 사용할 수 있다.

반복 가능한 함수 인수 사용
PHP
<?php
function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}

$arr = ["a", "b", "c"];
printIterable($arr);
?>
기본 예시
abc
반복 가능한 반환
PHP
<?php
function getIterable():iterable {
return ["a", "b", "c"];
}

$myIterable = getIterable();
foreach($myIterable as $item) {
echo $item;
}
?>
기본 예시
abc

Iterable 생성

배열

모든 배열은 반복 가능하므로 모든 배열은 반복 가능이 필요한 함수의 인수로 사용할 수 있다.

반복자

인터페이스 를 구현하는 모든 객체 Iterator는 iterable이 필요한 함수의 인수로 사용할 수 있다.

반복자는 항목 목록을 포함하고 항목을 반복하는 메서드를 제공한다.
목록의 요소 중 하나에 대한 포인터를 유지한다.
목록의 각 항목에는 항목을 찾는 데 사용할 수 있는 키가 있어야한다.

반복자에는 다음 메서드가 있어야한다.

  • current()- 포인터가 현재 가리키고 있는 요소를 반환합니다. 모든 데이터 유형이 될 수 있다.
  • key()목록의 현재 요소와 연결된 키를 반환합니다. 정수, 부동 소수점, 부울 또는 문자열만 가능하다.
  • next()포인터를 목록의 다음 요소로 이동한다.
  • rewind()포인터를 목록의 첫 번째 요소로 이동한다.
  • valid()내부 포인터가 어떤 요소도 가리키지 않는 경우(예: 목록 끝에서 next()가 호출된 경우) false를 반환해야한다. 다른 경우에는 true를 반환한다.
PHP
<?php
class MyIterator implements Iterator {
private $items = [];
private $pointer = 0;

public function __construct($items) {
$this->items = array_values($items);
}

public function current() {
return $this->items[$this->pointer];
}

public function key() {
return $this->pointer;
}

public function next() {
$this->pointer++;
}

public function rewind() {
$this->pointer = 0;
}

public function valid() {
return $this->pointer < count($this->items);
}
}

function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}

$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>
기본 예시
abc
참고

Mingg`s Diary
밍구
공부 목적 블로그