백엔드 개발 PHP 튜토리얼 PHP闭包函数详解_PHP

PHP闭包函数详解_PHP

May 28, 2016 am 11:48 AM
PHP 폐쇄 PHP 클로저 함수

匿名函数也叫闭包函数(closures允许创建一个没有指定没成的函数,最经常用作回调函数参数的值。

闭包函数没有函数名称,直接在function()传入变量即可 使用时将定义的变量当作函数来处理

  $cl = function($name){
    return sprintf('hello %s',name);
  }
  echo $cli('fuck')`
로그인 후 복사

直接通过定义为匿名函数的变量名称来调用

echo preg_replace_callback('~-([a-z])~', function ($match) {
  return strtoupper($match[1]);
}, 'hello-world');`
로그인 후 복사

使用use

$message = 'hello';
$example = function() use ($message){
  var_dump($message);
};
echo $example();
//输出hello
$message = 'world';
//输出hello 因为继承变量的值的时候是函数定义的时候而不是 函数被调用的时候
echo $example();
//重置为hello
$message = 'hello';
//此处传引用
$example = function() use(&$message){
 var_dump($message);
};
echo $example();
//输出hello
$message = 'world';
echo $example();
//此处输出world
//闭包函数也用于正常的传值
$message = 'hello';
$example = function ($data) use ($message){
  return "{$data},{$message}";
};

echo $example('world');

로그인 후 복사

example

class Cart{
  //在类里面定义常量用 const 关键字,而不是通常的 define() 函数。
  const PRICE_BUTTER = 1.00;
  const PRICE_MILK  = 3.00;
  const PRICE_EGGS  = 6.95;

  protected $products = [];
  public function add($product,$quantity){
    $this->products[$product] = $quantity;
  }
  public function getQuantity($product){
    //是否定义了
    return isset($this->products[$product])?$this->products[$product]:FALSE;
  }
  public function getTotal($tax){
    $total = 0.0;
    $callback = function($quantity,$product) use ($tax , &$total){
      //constant 返回常量的值
      //__class__返回类名
      $price = constant(__CLASS__."::PRICE_".strtoupper($product));

      $total += ($price * $quantity)*($tax+1.0);
    };
    //array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数
    array_walk($this->products,$callback);
    //回调匿名函数
    return round($total,2);

  }
}


$my_cart = new Cart();
$my_cart->add('butter',1);
$my_cart->add('milk',3);
$my_cart->add('eggs',6);


print($my_cart->getTotal(0.05));
로그인 후 복사

以上就是关于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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PHP에서 익명 함수 및 클로저를 사용하는 방법 PHP에서 익명 함수 및 클로저를 사용하는 방법 Jul 15, 2023 pm 02:12 PM

PHP에서 익명 함수 및 클로저를 사용하는 방법 익명 함수 및 클로저는 PHP에서 강력하고 일반적으로 사용되는 기능입니다. 이를 통해 코드에서 함수를 유연하게 정의하고 사용할 수 있으며 이는 콜백 함수, 이벤트 핸들러 및 비동기 프로그래밍을 처리할 때 특히 유용합니다. 이 기사에서는 PHP에서 익명 함수와 클로저를 사용하는 방법을 소개하고 독자의 이해를 돕기 위해 몇 가지 샘플 코드를 제공합니다. 1. 익명 함수의 정의 및 사용 익명 함수는 이름에서 알 수 있듯이 이름이 없는 함수입니다. "function"이라는 키워드와 작은 두 개의 키워드를 통해 접근할 수 있습니다.

PHP에서 익명 함수를 사용하는 방법 PHP에서 익명 함수를 사용하는 방법 May 18, 2023 pm 07:31 PM

PHP 언어에서는 익명 함수를 클로저(Closure)라고도 합니다. 미리 이름을 지정하지 않고도 런타임에 정의하여 사용할 수 있는 함수입니다. 일반 함수에 비해 익명 함수는 변수로 직접 사용할 수 있고 다른 함수에 전달할 수 있으며 동시에 해당 환경의 변수 값에 액세스할 수 있습니다. 익명 함수의 구문 형식은 다음과 같습니다. $function_name=function($parameter){//...functioncode

PHP 클로저, 생성기 및 리플렉션 기술을 사용하여 코드 복잡성을 단순화하는 방법 PHP 클로저, 생성기 및 리플렉션 기술을 사용하여 코드 복잡성을 단순화하는 방법 Sep 13, 2023 am 11:04 AM

PHP 클로저, 생성기 및 리플렉션 기술을 사용하여 코드 복잡성을 단순화하는 방법 소개: 일상적인 개발에서 우리는 종종 번거로운 로직과 중복 코드를 처리하는 문제에 직면합니다. PHP는 코드 복잡성을 단순화하고 개발 효율성을 향상시키는 데 도움이 되는 클로저, 생성기 및 반사 기술과 같은 몇 가지 강력한 기능을 제공합니다. 이 문서에서는 이러한 기술을 사용하여 코드를 단순화하는 방법을 소개하고 특정 코드 예제를 통해 설명합니다. 클로저를 사용하여 로직을 단순화하세요. 클로저는 함수 외부에서 사용할 수 있는 익명 함수입니다.

효율적인 프로그래밍을 위해 PHP의 클로저, 생성기 및 리플렉션 기술을 사용하는 방법 효율적인 프로그래밍을 위해 PHP의 클로저, 생성기 및 리플렉션 기술을 사용하는 방법 Sep 13, 2023 pm 03:06 PM

효율적인 프로그래밍을 위해 PHP의 클로저, 생성기 및 리플렉션 기술을 사용하는 방법 소개: PHP는 웹 개발에 널리 사용되는 스크립팅 언어이며 클로저, 생성기 및 리플렉션 기술은 PHP의 강력하고 유연한 기능입니다. 이러한 기술을 능숙하게 적용함으로써 개발자는 보다 효율적이고 유지 관리하기 쉬운 코드를 작성할 수 있습니다. 이 글에서는 클로저, 제너레이터, 리플렉션 기술의 개념을 자세히 소개하고, 독자가 이러한 기술을 더 잘 이해하고 적용할 수 있도록 구체적인 코드 예제를 제공합니다. 1. 클로저(Closure) 클로저(Closure)는 자립(self-contained)이 가능하다는 뜻입니다(

PHP 클로저, 생성기 및 리플렉션 기술의 기본 원리를 깊이 이해합니다. PHP 클로저, 생성기 및 리플렉션 기술의 기본 원리를 깊이 이해합니다. Sep 13, 2023 pm 12:52 PM

PHP 클로저, 생성기 및 리플렉션 기술의 기본 원리를 깊이 이해하려면 특정 코드 예제가 필요합니다. PHP 프로그래밍에서는 클로저, 생성기 및 리플렉션 기술이 매우 중요하고 일반적으로 사용되는 기능입니다. 기본 원칙을 이해하면 이를 더 잘 사용하고 실제 개발에 더 유연하게 적용하는 데 도움이 될 수 있습니다. 1. 클로저의 기본 원리 클로저는 함수 외부 범위에 있는 변수에 함수 내에서 접근할 수 있다는 의미입니다. 함수가 함수 외부에서 호출되더라도 이러한 변수에는 계속 접근할 수 있습니다. 기본 원칙: PHP가 클로저를 구현할 때

PHP 클로저, 생성기 및 리플렉션 기술의 실용적인 방법을 마스터하세요. PHP 클로저, 생성기 및 리플렉션 기술의 실용적인 방법을 마스터하세요. Sep 13, 2023 pm 01:22 PM

PHP 클로저, 생성기 및 리플렉션 기술을 마스터하기 위한 실용적인 방법에는 특정 코드 예제가 필요합니다. PHP 프로그래밍에서 클로저, 생성기 및 리플렉션 기술은 매우 중요하고 유용한 세 가지 기술입니다. 이 기사에서는 이 세 가지 기술의 기본 개념과 사용법을 소개하고, 독자가 이를 더 잘 이해하고 적용할 수 있도록 구체적인 코드 예제를 제공합니다. 1. 클로저 클로저는 환경이 더 이상 존재하지 않더라도 생성 당시 컨텍스트에 액세스할 수 있는 기능을 갖는 특수 기능입니다. 클로저는 use 키워드를 사용하여 정의됩니다. 다음은 클로저를 보여주는 간단한 예입니다.

PHP의 클로저 함수와 일반적인 문제에 대한 자세한 설명 PHP의 클로저 함수와 일반적인 문제에 대한 자세한 설명 Jun 09, 2023 am 09:46 AM

PHP의 클로저 함수 및 일반적인 문제에 대한 자세한 설명 PHP에서 클로저 함수는 함수를 매개변수로 전달하고 반환할 수 있는 특수 함수 유형이며, 함수 내부에서 외부 변수에 액세스할 수 있습니다. 이 글에서는 PHP의 클로저 함수와 그 일반적인 문제에 대해 자세히 살펴보겠습니다. 폐쇄 기능이란 무엇입니까? 클로저 함수는 정의 범위 내의 변수에 액세스할 수 있는 익명 함수입니다. 일반적으로 함수 정의의 범위는 함수 자체로 제한되지만 클로저 함수는 함수 실행이 완료된 후에도 정의 범위 내의 변수에 액세스할 수 있습니다.

PHP 클로저, 생성기 및 리플렉션 기술을 사용하여 코드 유지 관리성을 향상시키는 방법 PHP 클로저, 생성기 및 리플렉션 기술을 사용하여 코드 유지 관리성을 향상시키는 방법 Sep 13, 2023 am 11:51 AM

PHP 클로저, 생성기 및 리플렉션 기술을 사용하여 코드 유지 관리를 향상시키는 방법 소개: 유지 관리는 소프트웨어 개발 프로세스에서 매우 중요한 요소입니다. 유지 관리 가능한 코드를 쉽게 수정, 확장 및 디버깅할 수 있으므로 프로젝트가 더욱 유연하고 강력해집니다. 이 기사에서는 PHP에서 클로저, 생성기 및 리플렉션 기술을 사용하여 코드의 유지 관리성을 향상시키는 방법을 소개하고 특정 코드 예제를 통해 이를 설명합니다. 1. 클로저 사용 클로저는 컨텍스트 변수를 캡처할 수 있는 기능으로 보다 유연한 코드 구조를 달성하는 데 사용할 수 있습니다.

See all articles