개발! 딱 깔끔하고 센스있게!

PHP 에 들 어 있 는 폐쇄... 정확히 말 하면 그것들 은 무엇 입 니까? 언제 사용 해 야 합 니까? 본문

개발 스크랩 메모/PHP

PHP 에 들 어 있 는 폐쇄... 정확히 말 하면 그것들 은 무엇 입 니까? 언제 사용 해 야 합 니까?

렉사이 2020. 12. 2. 02:40

그래서 저 는 아주 좋 은, 최신, 대상 을 대상 으로 하 는 방식 으로 프로그램 을 만 들 었 습 니 다.

나 는 PHP 가 실현 되 는 OOP 의 여러 면 을 자주 사용 하지만, 언제 닫 는 가방 을 사용 해 야 할 지 궁금 하 다.

언제 폐쇄 를 실시 하 는 것 이 유용 하 다 고 말 할 수 있 는 전문가 가 있 습 니까?

대답 하 다.

PHP 는 5.3 에 닫 기 를 지원 합 니 다.

작은 용도 로 만 사용 할 수 있 는 국소함수 가 있 으 면 닫 기 가 좋 습 니 다.

닫 힌 RFC 가 좋 은 예 를 제시 했다.

function replace_spaces ($text) { $replacement = function ($matches) { return str_replace ($matches[1], ' ', ' ').' '; }; return preg_replace_callback ('/( +) /', $replacement, $text); } 

이것 은 replace spaces () 에서 로 컬 로 replace 함 수 를 정의 할 수 있 도록 합 니 다.

이렇게 하면:1) 전체적인 네 임 스페이스 를 어 지 럽 히 기2) 3 년 후 사람들 은 왜 전 세계 에서 정 의 된 함 수 를 다른 함수 에서 만 사용 하 는 지 의심 하기 시작 했다.

그것 은 일 을 정연 하 게 한다.

함수 자체 에 이름 이 없습니다.

$"Replacement" 에 대한 인용 으로 정의 되 고 분 배 될 뿐 입 니 다.

단, PHP 5.3:) 를 기 다 려 야 한 다 는 것 을 기억 하 세 요.

키 use 를 사용 하여 도 메 인 이외 의 변 수 를 클 로 징 에 접근 할 수 있 습 니 다.

이 예 를 고려 하 다.

// Set a multiplier $multiplier = 3; // Create a list of numbers $numbers = array(1,2,3,4); // Use array_walk to iterate // through the list and multiply array_walk($numbers, function($number) use($multiplier){ echo $number * $multiplier; }); 

php lambdas 와 폐백 이 무엇 인지 설명 이 잘 되 어 있다.

Comments