PHP 트래버스 객체
PHP 5에서는 foreach 문을 사용하는 등 셀 목록을 통해 탐색할 수 있도록 객체를 정의하는 방법을 제공합니다. 기본적으로 모든 표시 속성은 순회에 사용됩니다.
예제 #1 단순 객체 탐색
class MyClass { public $var1 = 1; public $var2 = 2; public $var3 = 3; protected $protected = 'protected var'; private $private = 'private var'; function iterateVisible(){ echo "MyClass::iterateVisible:<br>"; foreach($this as $key => $value){ print "$key=>$value<br>"; } } } $class = new MyClass(); foreach($class as $key => $value){ print "$key => $value<br>"; } echo "<br>"; $class->iterateVisible();
출력 결과:
var1 => 1
var2 => 🎜>var3 => 3
MyClass::iterateVisible:
var1=>1
var2=>2
var3=> 3
protected=>protected var
private=>private var
위에 표시된 것처럼 foreach는 액세스할 수 있는 모든 표시 속성을 순회합니다.
더 나아가 Iterator 인터페이스를 구현해 보세요. 객체가 탐색 방법과 탐색할 때마다 어떤 값을 사용할 수 있는지 결정하도록 할 수 있습니다.
출력 결과:class MyIterator implements Iterator{ private $var = array(); public function __construct($array) { if(is_array($array)){ $this->var = $array; } } public function rewind(){ echo "rewinding<br>"; reset($this->var); } public function current(){ $var = current($this->var); echo "current:$var<br>"; return $var; } public function key(){ $var = key($this->var); echo "key:$var<br>"; return $var; } public function next(){ $var = next($this->var); echo "next:$var<br>"; return $var; } public function valid(){ $var = $this->current()!==false; echo "valid:$var<br>"; return $var; } } $values = array(1,2,3); $it = new MyIterator($values); foreach($it as $a => $b){ print "$a:$b<br>"; }
되감기
현재:1
유효:1
현재:1
키:0
0:1
다음:2
현재:2
유효:1
현재:2
키:1
1:2
다음:3
현재:3
유효:1
현재:3
키:2
2:3
다음:
현재:
유효:
모든 Iterator 메서드를 구현하는 대신 IteratorAggregate 인터페이스를 사용할 수 있습니다. IteratorAggregate는 Iterator를 구현하는 클래스의 인스턴스를 반환해야 하는 IteratorAggregate::getIterator()라는 하나의 메서드만 구현하면 됩니다.
예제 #3 IteratorAggregate를 구현하여 객체 트래버스
출력 결과:include_once('class2.php'); class MyCollection implements IteratorAggregate { private $items = array(); private $count = 0; public function getIterator(){ return new MyIterator($this->items); } public function add($value){ $this->items[$this->count++] = $value; } } $coll = new MyCollection(); $coll -> add('1'); $coll -> add('2'); $coll -> add('3'); foreach($coll as $k => $v){ echo "key/value:[$k->$v]<br><br>"; }
되감기
현재:1
유효: 1
현재:1
키:0
키/값:[0->1]
다음: 2
현재:2
유효:1
현재:2
키:1
키/값:[1 - >2]
다음:3
현재:3
유효:1
현재:3
키:2
키/값:[2->3]
다음:
현재:
유효:

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다
