이전 글에서 "PHP에서 익명함수란 무엇인가요?"에 대해 소개해 드렸습니다. 일반 기능과 어떻게 다른가요? (자세한 설명 및 예시) ", 이 글에서는 계속해서 클로저 기능이 무엇인지 소개하고 있나요? 클로저 기능의 역할은 무엇인가요? (코드첨부) 도움이 필요한 친구들이 참고해서 모두에게 도움이 되었으면 좋겠습니다.
클로저 함수란?
use 키워드를 통해 자식 함수 내부의 부모 함수 변수를 사용하는 방법이 바로 클로저 함수입니다.
형식:
function 父函数(){ //父函数的局部变量 $var-值 //声明廬名函数并且使用use格式实现闭包 变量- function() use(父元素变量){ }; }
우리가 배운 익명 함수와 오늘 배우려는 클로저 함수는 일반적으로 코드를 작성할 때 자주 사용되지 않습니다. 일반적으로 프레임워크를 작성할 때 나타납니다.
구체적으로 코드를 예로 들어 논의해 보겠습니다.
<?php /******* 闭包函数************/ //定义一个变量 $pph = ' 这是页面及的变量'; function father1(){ //父函数的一个局部变量 $pph = '不想上班' ; function son1( ){ global $pph; echo $pph; } son(); } father1(); ?>
코드 분석:
먼저 변수 $pph(페이지 및 페이지의 변수)를 정의한 다음 상위의 로컬 변수를 정의합니다. function [function father()] 이때 내부 변수와 외부 변수가 있고 전역 $pph, 출력(echo) $pph, 출력 결과가 상위 클래스입니까 아니면 페이지 수준입니까? 결과를 실행했을 때 출력 결과가 페이지 수준에 있음을 확인했습니다(코드는 아래에 표시됨). 따라서 전역 변수가 호출되면 페이지 변수만 출력할 수 있고 상위 클래스 변수는 출력할 수 없다는 결론을 내렸습니다.
익명함수 형태로 작성할 때에는 상위 요소의 변수를 사용할 수 있는데, use 키워드를 사용해야 하는데, 실행하면 오류 메시지가 나옵니다.
The 코드는 다음과 같습니다:
function father(){ $pph = '不想上班'; function son() use($pph){ echio $pph; } son(); } father();
실행 결과는 다음과 같습니다.
이것은 잘못되었으며 구현할 수 없습니다.
익명 함수를 사용하여 클로저를 구현합니다.
function father(){ $pph = '不想上班'; $son = function () use($pph){ echo $pph; }; //调用内部函数 $son(); } father();
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 폐쇄 기능이란 무엇입니까? 클로저 기능의 역할은 무엇인가요? (코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!