목차
소개
인터랙터로서의 생성기
Example
Output
백엔드 개발 PHP 튜토리얼 PHP 생성기와 반복자 객체 비교

PHP 생성기와 반복자 객체 비교

Sep 16, 2023 pm 05:41 PM
비교하다 PHP 생성기 PHP 반복자 객체

PHP 생성기와 반복자 객체 비교

소개

제너레이터 함수가 호출되면 내부적으로 새로운 제너레이터 클래스 객체가 반환됩니다. Iterator 인터페이스를 구현합니다. 반복자 인터페이스는 다음과 같은 추상 메소드를 정의합니다.

  • Iterator::current - 현재 요소를 반환합니다.
  • Iterator: :key — 현재 요소의 키를 반환합니다.
  • Iterator::next — 다음으로 이동합니다. 다음 요소
  • Iterator: :rewind — 반복자를 첫 번째 요소로 되감기
  • Iterator::valid — 현재 위치가 유효한지 확인

생성기는 전향 전용 반복자 개체로 작동합니다. , 그리고 생성기로 값을 보내고 생성기에서 값을 반환하는 것을 포함하여 생성기의 상태를 조작하는 호출 가능한 메서드를 제공합니다.

인터랙터로서의 생성기

아래 예에서 생성기 함수는 oreach 루프를 사용하여 반복할 수 있는 생성기 개체의 파일에 행을 생성합니다. current() 및 next()와 같은 반복자 메서드도 호출할 수 있습니다. 그러나 생성기는 정방향 반복자이므로 rewind() 메서드를 호출하면 예외가 발생합니다.

Example

<?php
function filegenerator($name) {
   $fileHandle = fopen($name, &#39;r&#39;);
   while ($line = fgets($fileHandle)) {
      yield $line;
   }
   fclose($fileHandle);
}
$name="test.txt";
$file=filegenerator($name);
foreach ($file as $line)
echo $line;
$file->rewind();
echo $file->current();
$file->next();
echo $file->current();
?>
로그인 후 복사

Output

파일 행을 반복한 후 다음과 같은 치명적인 오류가 표시됩니다

PHP User Defined Functions
PHP Function Arguments
PHP Variable Functions
PHP Internal (Built-in) Functions
PHP Anonymous functions
PHP Arrow Functions
PHP Fatal error: Uncaught Exception: Cannot rewind a generator that was already run
로그인 후 복사

위 내용은 PHP 생성기와 반복자 객체 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Xiaomi Mi 14 Pro에서 NFC 기능을 활성화하는 방법은 무엇입니까? Xiaomi Mi 14 Pro에서 NFC 기능을 활성화하는 방법은 무엇입니까? Mar 19, 2024 pm 02:28 PM

요즘 휴대폰의 성능과 기능은 점점 더 강력해지고 있습니다. 거의 모든 휴대폰에는 사용자의 모바일 결제 및 신원 인증을 용이하게 하는 편리한 NFC 기능이 탑재되어 있습니다. 그러나 일부 Xiaomi 14Pro 사용자는 NFC 기능을 활성화하는 방법을 모를 수 있습니다. 다음으로 자세히 소개해드리겠습니다. Xiaomi 14Pro에서 NFC 기능을 활성화하는 방법은 무엇입니까? 1단계: 휴대폰의 설정 메뉴를 엽니다. 2단계: "연결 및 공유" 또는 "무선 및 네트워크" 옵션을 찾아 클릭합니다. 3단계: 연결 및 공유 또는 무선 및 네트워크 메뉴에서 "NFC 및 결제"를 찾아 클릭합니다. 4단계: "NFC 스위치"를 찾아서 클릭하세요. 일반적으로 기본값은 꺼짐입니다. 5단계: NFC 스위치 페이지에서 스위치 버튼을 클릭하여 켜세요.

문서를 더 깔끔하게 만들기 위해 WPS Word에서 줄 간격을 설정하는 방법 문서를 더 깔끔하게 만들기 위해 WPS Word에서 줄 간격을 설정하는 방법 Mar 20, 2024 pm 04:30 PM

WPS는 당사에서 흔히 사용하는 사무용 소프트웨어입니다. 긴 글을 편집할 때 글꼴이 너무 작아서 선명하게 보이지 않는 경우가 많아 글꼴과 전체 문서가 조정됩니다. 예를 들어 문서의 줄 간격을 조정하면 문서 전체가 매우 명확해집니다. 오늘은 구체적인 작업 단계를 알려드리겠습니다. 와서 살펴보세요. 조정하려는 WPS 텍스트 파일을 열고 [시작] 메뉴에서 단락 설정 툴바를 찾으면 작은 줄 간격 설정 아이콘(그림에서 빨간색 원으로 표시)이 표시됩니다. 2. 줄 간격 설정 오른쪽 하단에 있는 작은 역삼각형을 클릭하면 해당 줄 간격 값이 나타납니다. 줄 간격의 1~3배를 선택할 수 있습니다(그림의 화살표 참조). 3. 또는 해당 단락을 마우스 오른쪽 버튼으로 클릭하면 나타납니다.

Huawei Pocket2에서 원격으로 TikTok을 사용하는 방법은 무엇입니까? Huawei Pocket2에서 원격으로 TikTok을 사용하는 방법은 무엇입니까? Mar 18, 2024 pm 03:00 PM

화면을 공중으로 밀어내는 것은 화웨이 메이트60 시리즈에서 높은 평가를 받는 화웨이의 기능이다. 이 기능은 휴대폰의 레이저 센서와 전면 카메라의 3D 깊이 카메라를 활용해 화면이 필요 없는 일련의 기능을 완성한다. 공중에서 TikTok을 스와이프하는 등 화면을 터치하는 기능이 있는데, Huawei Pocket 2를 사용하여 공중에서 TikTok을 스와이프하는 방법은 무엇인가요? Huawei Pocket2로 공중에서 스크린샷을 찍는 방법은 무엇입니까? 1. Huawei Pocket2의 설정을 엽니다. 2. 그런 다음 [접근성]을 선택합니다. 3. 클릭하여 [스마트 인식]을 엽니다. 4. [에어 스와이프 스크린], [에어 스크린샷], [에어 프레스] 스위치를 켜기만 하면 됩니다. 5. 사용 시 화면에서 20~40CM 거리를 두고 손바닥을 펴고 화면에 손바닥 아이콘이 나타날 때까지 기다려야 합니다.

iPhone 16 Pro CAD 도면이 공개되어 두 번째 새 버튼이 추가되었습니다. iPhone 16 Pro CAD 도면이 공개되어 두 번째 새 버튼이 추가되었습니다. Mar 09, 2024 pm 09:07 PM

아이폰16 프로의 CAD 파일이 노출됐는데, 디자인은 기존 루머와 일치한다. 지난해 가을 아이폰 15 프로에는 액션 버튼이 추가됐고, 올 가을 애플은 하드웨어 크기를 소폭 조정할 계획인 것으로 보인다. 캡처 버튼 추가 소문에 따르면 아이폰 16 프로는 두 번째 새 버튼을 추가할 수도 있는데, 이는 지난해에 이어 2년 연속 새 버튼이 추가되는 셈이다. 아이폰 16 프로에서는 새로운 캡처 버튼이 오른쪽 하단에 배치될 것이라는 소문이 돌고 있다. 이 디자인은 카메라 제어를 더욱 편리하게 하고 액션 버튼을 다른 기능에도 사용할 수 있게 할 것으로 예상된다. 이 버튼은 더 이상 일반 셔터 버튼이 아닙니다. 카메라에 관해서는 현재 iP에서

Redmi K70E에 대한 사용자 정의 벨소리를 설정하는 방법은 무엇입니까? Redmi K70E에 대한 사용자 정의 벨소리를 설정하는 방법은 무엇입니까? Feb 24, 2024 am 10:00 AM

Redmi K70E는 가격이 2,000위안이 조금 넘는 휴대폰으로서 의심할 여지 없이 우수합니다. Redmi K70E는 동급 휴대폰 중 가장 비용 효율적인 휴대폰 중 하나라고 할 수 있습니다. 가성비를 추구하는 많은 사용자들이 Redmi K70E의 다양한 기능을 경험하기 위해 이 휴대폰을 구입했습니다. 그렇다면 Redmi K70E에 대한 사용자 정의 벨소리를 설정하는 방법은 무엇입니까? Redmi K70E에 대한 사용자 정의 벨소리를 설정하는 방법은 무엇입니까? Redmi K70E에 대한 사용자 정의 수신 전화 벨소리를 설정하려면 다음 단계를 따르십시오. 휴대폰의 설정 애플리케이션을 열고 설정 애플리케이션에서 "소리 및 진동" 또는 "소리" 옵션을 찾은 다음 "수신 전화 벨소리"를 클릭하십시오. 또는 "전화 벨소리" "옵션. 벨소리 설정에서

Microsoft 팀에서 언어를 전환하는 방법 Microsoft 팀에서 언어를 전환하는 방법 Feb 23, 2024 pm 09:00 PM

Microsoft Teams에서는 선택할 수 있는 언어가 많은데 언어를 전환하는 방법은 무엇입니까? 사용자는 메뉴를 클릭한 다음 설정을 찾아 일반을 선택한 다음 언어를 클릭하고 언어를 선택하고 저장해야 합니다. 언어 전환 방법에 대한 소개는 다음과 같습니다. 자세한 내용을 살펴보세요. 술집! Microsoft Teams에서 언어를 전환하는 방법 답변: 설정-일반-언어에서 특정 프로세스를 선택합니다. 1. 먼저 아바타 옆에 있는 세 개의 점을 클릭하여 설정으로 들어갑니다. 2. 그런 다음 내부의 일반 옵션을 클릭하십시오. 3. 그런 다음 언어를 클릭하고 아래로 스크롤하여 더 많은 언어를 확인하세요. 4. 마지막으로 저장하고 다시 시작을 클릭합니다.

C언어와 PHP의 차이점과 비교분석 C언어와 PHP의 차이점과 비교분석 Mar 20, 2024 am 08:54 AM

C 언어와 PHP의 차이점 및 비교 분석 C 언어와 PHP는 모두 일반적인 프로그래밍 언어이지만 여러 측면에서 분명한 차이점이 있습니다. 이 기사에서는 C 언어와 PHP를 비교 분석하고 구체적인 코드 예제를 통해 이들 간의 차이점을 설명합니다. 1. 구문 및 사용법: C 언어: C 언어는 프로세스 지향 프로그래밍 언어로 주로 시스템 수준 프로그래밍 및 임베디드 개발에 사용됩니다. C 언어의 구문은 상대적으로 간단하고 저수준이며, 메모리를 직접 조작할 수 있고 효율적이고 유연합니다. C 언어는 프로그래머의 프로그램 완성도를 강조합니다.

PHP7.2와 5 버전의 장단점 비교 분석 PHP7.2와 5 버전의 장단점 비교 분석 Feb 27, 2024 am 10:51 AM

PHP7.2와 5의 장단점 비교 및 ​​분석. PHP는 매우 널리 사용되는 서버 측 스크립팅 언어이며 웹 개발에 널리 사용됩니다. 그러나 PHP는 변화하는 요구 사항을 충족하기 위해 다양한 버전으로 지속적으로 업데이트되고 개선되고 있습니다. 현재 PHP7.2는 최신 버전으로, 이전 PHP5 버전과 비교하여 주목할 만한 많은 차이점과 개선 사항이 있습니다. 이 기사에서는 PHP7.2와 PHP5 버전을 비교하고, 장점과 단점을 분석하고, 구체적인 코드 예제를 제공합니다. 1. 성능 PH

See all articles