반응형
이번 회차에선 iterable에 대해 배웠다.
iterable() 함수
'iterable()'은 'foreach()'문과 비슷한 함수이다.
배열을 반복해 주는 함수이다.
<?php
//printArr 함수의 조건 설정
function printArr(iterable $myIterable) {
foreach($myIterable as $array) {
echo $array;
}
}
//'$name'변수에 이름 배열을 지정함
$name = ["남기, ", "지민, ", "서준"];
printArr($name);
?>
실행결과는 다음과 같다.
<?php
//Iterator 생성
class MyIterator implements Iterator {
private $items = [];
private $pointer = 0;
public function __construct($items) {
//'array_values()'는 '$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() {
//'count()'는 목록에 있는 항목의 수를 나타냄
return $this->pointer < count($this->items);
}
}
//'iterable'함수를 사용함
function printIterable(iterable $myIterable) {
foreach($myIterable as $item) {
echo $item;
}
}
//iterator를 iterable로 사용
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>
- current() - 포인터가 현재 가리키고 있는 요소를 반환한다.
- key() - 목록의 현재 요소와 연결된 키를 반환한다.
- next() - 포인터를 목록의 다음 요소로 이동한다.
- rewind() - 포인터를 목록의 첫 번째 요소로 이동한다.
- valid() - 내부 포인터가 어떤 요소도 가리키지 않는 경우(끝에서 next()가 호출된 경우) false를 반환한다.
실행결과는 다음과 같다.
이번회차에선 iterable에 대해 배웠다.
벌써 6회차이다.
다음 회차면 3주차도 마지막 회차이다.
반응형
'php' 카테고리의 다른 글
[php Login] 로그인 페이지 구축 - 1회(실패) (0) | 2022.09.28 |
---|---|
[php OOP] 3주차(7회차) / php 정적 메서드 (0) | 2022.09.22 |
[php OOP] 3주차(5회차) / php 네임스페이스 (1) | 2022.09.22 |
[php OOP] 3주차(4회차) / php 인터페이스, 특성 (2) | 2022.09.20 |
[php OOP] 3주차(3회차) / php 상속, 상수 (0) | 2022.09.18 |