PHP 익명 기능 및 주의사항에 대한 자세한 설명

墨辰丷
풀어 주다: 2023-03-28 13:38:02
원래의
1536명이 탐색했습니다.

이 글에서는 주로 PHP 익명함수 관련 정보와 주의사항을 소개합니다. PHP5.3에서는 익명함수 뿐만 아니라 새로운 기능도 추가되었습니다. 아래에서는 PHP에 대한 자세한 설명을 살펴보겠습니다. 익명 기능 및 주의사항이 필요한 친구는

PHP 익명 기능 및 주의사항

PHP5.2 이전: 자동 로드, PDO 및 MySQLi, 유형 제약 조건
PHP5.2: JSON 지원
PHP5.3: 더 이상 사용되지 않는 기능을 참조하세요. , 익명 함수, 새로운 매직 메서드, 네임스페이스, 후기 정적 바인딩, Heredoc 및 Nowdoc, const, 삼항 연산자, Phar
PHP5.4: Short Open Tag, 배열 약어, 특성, 내장 웹 서버, 세부 정보 수정됨
PHP5.5 : Yield, list()는 foreach에 사용되며 세부 사항은 수정됨
PHP5.6: 상수 향상, 가변 함수 매개변수, 네임스페이스 향상

이제는 기본적으로 모두 PHP5.3 이상 버전을 사용하지만 공통적인 현상은 다음과 같습니다. 새로운 기능은 오랜 시간이 지나도 완전히 대중화되지 않았으며 프로젝트에서는 거의 사용되지 않습니다.

PHP 익명 함수 보기:

'test' => function(){
    return 'test'
},
로그인 후 복사

PHP 익명 함수의 정의는 매우 간단합니다. 변수에 값을 할당하는 것이지만 이 값은 함수입니다.

위는 Yii 프레임워크를 사용하여 구성한 컴포넌트 파일이며, 테스트 구성이 추가되어 있습니다.

PHP 익명 함수란 무엇인가요?

공식 설명 보기:

클로저라고도 불리는 익명 함수를 사용하면 지정된 이름 없이 일시적으로 함수를 생성할 수 있습니다. 콜백 함수 인수로 가장 일반적으로 사용되는 값입니다. 물론 다른 응용 프로그램도 있습니다.

익명 함수 예시

<?php
echo preg_replace_callback(&#39;~-([a-z])~&#39;, function ($match) {
  return strtoupper($match[1]);
}, &#39;hello-world&#39;);
// 输出 helloWorld
?>
로그인 후 복사

클로저 함수는 변수의 값으로도 사용할 수 있습니다. PHP는 자동으로 이 표현식을 내장 클래스 Closure의 객체 인스턴스로 변환합니다. 클로저 객체를 변수에 할당하는 방법은 일반 변수 할당 구문과 동일하며 끝에 세미콜론도 추가합니다.

익명 함수 변수 할당 예

<?php
$greet = function($name)
{
  printf("Hello %s\r\n", $name);
};
$greet(&#39;World&#39;);
$greet(&#39;PHP&#39;);
?>
로그인 후 복사

클로저는 다음에서 액세스할 수 있습니다. 상위 범위 상속된 변수. 이러한 변수는 사용 언어 구성을 사용하여 전달되어야 합니다.

상위 범위에서 변수 상속

<?php
$message = &#39;hello&#39;
// 没有 "use"
$example = function () {
  var_dump($message);
};
echo $example();
// 继承 $message
$example = function () use($message) {
  var_dump($message);
};
echo $example();
// Inherited variable&#39;s value is from when the function
// is defined, not when called
$message = &#39;world&#39;echo $example();
// Reset message
$message = &#39;hello&#39;
// Inherit by-reference
$example = function () use(&$message) {
  var_dump($message);
};
echo $example();
// The changed value in the parent scope
// is reflected inside the function call
$message = &#39;world&#39;echo $example();
// Closures can also accept regular arguments
$example = function ($arg) use($message) {
  var_dump($arg . &#39; &#39; . $message);
};
$example("hello");
?>
로그인 후 복사

php의 익명 함수에 대한 주의 사항

php5.3 이후 php에서 익명 함수 사용을 추가했는데 오늘은 익명을 사용할 때 오류가 발생했습니다. of php 함수가 그렇게 선언되어 사용되는데, 코드를 자세히 봐주세요

$callback=function(){ 
 return "aa"; 
}; 
echo $callback();
로그인 후 복사

인쇄된 단어는 aa;

아래 예를 보세요:

echo $callback(); 
$callback=function(){ 
 return "aa"; 
};
로그인 후 복사

오류가 보고되었습니다 이때! $callback은 선언되지 않았지만 PHP 자체에서 선언된 함수를 사용할 때 오류가 보고되지 않습니다!

function callback(){ 
 return "aa"; 
} 
echo callback(); //aa 
 
echo callback(); //aa 
function callback(){ 
 return "aa"; 
}
로그인 후 복사

둘 다 aa로 출력됩니다.

익명 함수를 사용할 때는 익명 함수를 변수로 사용하므로 js에서도 마찬가지입니다! ! ! ! !

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.


관련 권장 사항:

PHP에서 이벤트 후보 추첨 기능을 구현하는 방법

날짜, 월, 일, 주, 시간, 분, 초 등에 대해 PHP에서 덧셈과 뺄셈을 구현하는 방법

PHP는 텍스트 상자, 비밀번호 필드 및 버튼의 값을 가져오는 것을 구현합니다

위 내용은 PHP 익명 기능 및 주의사항에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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