> 백엔드 개발 > PHP 문제 > PHP 수익률은 무엇을 의미합니까?

PHP 수익률은 무엇을 의미합니까?

coldplay.xixi
풀어 주다: 2023-03-01 20:16:01
원래의
4961명이 탐색했습니다.

php Yield는 Yield 키워드가 생성기 함수에서 데이터를 반환한다는 것을 의미합니다. Yield는 함수 실행을 중지하고 반환하지 않지만 루프 생성기 코드에 값을 제공하고 일시 중지합니다. 생성기 기능 실행.

PHP 수익률은 무엇을 의미합니까?

php 수익률은 다음을 의미합니다.

1.

Yield 키워드는 생성기 함수에서 데이터를 반환합니다.

생성기 함수의 핵심은 Yield 키워드입니다. 가장 간단한 형태의 Yield 문은 함수 실행을 중지하고 반환하는 대신 루프 생성기의 코드에 값을 제공하고 생성기 함수의 실행을 일시 중지하는 return 문과 매우 유사합니다.

2. 생성기 기능이란 무엇입니까?

Generator 함수는 실제로 반복자를 작성하는 더 간결하고 효율적인 방법입니다. 이를 통해 함수를 반복하면서 값을

계산하고 반환_하는 함수(xrange)를 정의할 수 있습니다.

foreach (xrange(1, 10) as $key => $value) {
    echo "$key => $value", PHP_EOL;
}
로그인 후 복사

이렇게 하면 다음과 같은 출력이 생성됩니다.

0 => 1
1 => 2
…
9 => 10
로그인 후 복사

$를 제어할 수도 있습니다. keyforeach에서 사용됩니다. $keyforeach使用

yield $someKey => $someValue;
로그인 후 복사

在generator函数中,$someKey是您想要显示的内容$key$someValue是中的值$val。在问题的示例中为$irrreee

생성기 함수에서 $someKey$key를 표시하려는 것이고 $someValue는 $val의 값입니다. 질문의 예에서는 $i입니다.

3. 일반 기능과 어떻게 다른가요?

이제 이 출력을 얻기 위해 왜 PHP의 기본 범위 기능을 사용하지 않았는지 궁금하실 것입니다. 그렇습니다. 출력은 동일합니다. 차이점은 우리가 거기에 도달하는 방법입니다.

rangePHP를 사용하면 이를 실행하고 메모리에 전체 숫자 배열을 생성한 다음 foreach 루프에서 전체 배열

을 반환한 다음 이를 통해 값을 출력합니다. 즉, foreachwill은 배열 자체에서 작동합니다. 범위 기능과 foreach는 한 번만 "대화"합니다. 우편으로 소포를 받는 것과 같다고 생각하세요. 배달원이 패키지를 건네주고 떠날 것입니다. 그런 다음 전체 패키지의 포장을 풀고 안에 들어 있는 모든 것을 제거합니다.

생성기 함수를 사용하면 PHP는 함수에 들어가서 end 또는 Yield 키워드를 만날 때까지 실행됩니다. Yield를 만나면 현재 값을 외부 루프에 반환합니다. 그런 다음 생성기 함수로 돌아가서 생성된 위치부터 계속됩니다. xrange에는 for 루프가 있으므로 $max에 도달할 때까지 실행되고 결과가 나옵니다. foreach와 탁구를 하는 생성기라고 생각하세요.

4. 그게 왜 필요한가요?

분명히 생성기를 사용하여 메모리 제약 조건을 해결할 수 있습니다. 환경에 따라 range(1, 1000000)을 수행하면 스크립트가 치명적일 수 있지만 생성기로 동일한 작업을 수행하면 문제가 없습니다. 또는 Wikipedia에 따르면

생성기는 요청 시에만 산출량 값을 계산하므로 비용이 많이 들거나 즉시 계산할 수 없는 시퀀스를 나타내는 데 유용합니다. 예를 들어, 무한 시퀀스 및 실시간 데이터 스트리밍이 여기에 포함됩니다.

발전기도 빨라야 해요. 하지만 기억하세요. 우리가 빠르다고 말할 때는 대개 매우 작은 용어로 이야기한다는 점을 기억하세요. 따라서 실행을 시작하고 생성기를 사용하기 위해 모든 코드를 변경하기 전에 벤치마크를 통해 그것이 적합한지 확인하십시오.

제너레이터의 또 다른 사용 사례는 비동기 코루틴입니다. Yield 키워드는 값을 반환할 뿐만 아니라 값을 허용하기도 합니다. 이에 대한 자세한 내용은 아래 링크된 두 개의 훌륭한 블로그 게시물을 참조하세요.

5. Yield는 언제부터 사용할 수 있나요?

제너레이터는 PHP 5.5에서

도입되었습니다. 이전 버전의 Yield를 사용하려고 하면 키워드 뒤에 오는 코드에 따라 다양한 구문 분석 오류가 발생합니다. 따라서 이 코드에서 구문 분석 오류가 발생하면 PHP를 업데이트하세요.

관련 학습 권장 사항: 초보부터 마스터까지 PHP 프로그래밍

🎜

위 내용은 PHP 수익률은 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿