Rumah pembangunan bahagian belakang tutorial php PHP闭包函数详解_php技巧

PHP闭包函数详解_php技巧

May 16, 2016 pm 07:58 PM
penutupan php fungsi penutupan php

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

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

  $cl = function($name){
    return sprintf('hello %s',name);
  }
  echo $cli('fuck')`
Salin selepas log masuk

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

echo preg_replace_callback('~-([a-z])~', function ($match) {
  return strtoupper($match[1]);
}, 'hello-world');`
Salin selepas log masuk

使用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');

Salin selepas log masuk

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));
Salin selepas log masuk

以上就是关于PHP闭包函数的相关内容,希望对大家的学习有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan fungsi tanpa nama dan penutupan dalam PHP Cara menggunakan fungsi tanpa nama dan penutupan dalam PHP Jul 15, 2023 pm 02:12 PM

Cara menggunakan fungsi dan penutupan tanpa nama dalam PHP Fungsi dan penutupan tanpa nama adalah ciri yang berkuasa dan biasa digunakan dalam PHP. Ia membolehkan anda menentukan dan menggunakan fungsi secara fleksibel dalam kod anda, yang amat berguna apabila berurusan dengan fungsi panggil balik, pengendali acara dan pengaturcaraan tak segerak. Artikel ini akan memperkenalkan cara menggunakan fungsi dan penutupan tanpa nama dalam PHP, dan menyediakan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik. 1. Definisi dan penggunaan fungsi tanpa nama Fungsi tanpa nama, seperti namanya, adalah fungsi tanpa nama. Ia boleh diakses melalui kata kunci "fungsi" dan sepasang kecil

Cara menggunakan fungsi tanpa nama dalam PHP Cara menggunakan fungsi tanpa nama dalam PHP May 18, 2023 pm 07:31 PM

Dalam bahasa PHP, fungsi tanpa nama juga dipanggil penutupan (Closure) Ia adalah fungsi yang boleh ditakrifkan dan digunakan pada masa jalan tanpa menamakannya terlebih dahulu. Berbanding dengan fungsi biasa, fungsi tanpa nama boleh digunakan secara langsung sebagai pembolehubah dan dihantar ke fungsi lain, dan pada masa yang sama, mereka boleh mengakses nilai pembolehubah persekitaran mereka. Format sintaks bagi fungsi tanpa nama adalah seperti berikut: $function_name=function($parameter){//...functioncode

Cara menggunakan penutupan PHP, penjana dan teknologi pantulan untuk memudahkan kerumitan kod Cara menggunakan penutupan PHP, penjana dan teknologi pantulan untuk memudahkan kerumitan kod Sep 13, 2023 am 11:04 AM

Cara menggunakan penutupan PHP, penjana dan teknologi refleksi untuk memudahkan kerumitan kod Pengenalan: Dalam pembangunan harian, kita sering menghadapi masalah menangani logik yang rumit dan kod berlebihan. PHP memberikan kami beberapa ciri berkuasa, seperti penutupan, penjana dan teknologi pantulan, yang boleh membantu kami memudahkan kerumitan kod dan meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan cara menggunakan teknik ini untuk memudahkan kod anda dan menerangkannya melalui contoh kod tertentu. Gunakan penutupan untuk memudahkan logik Penutupan ialah fungsi tanpa nama yang boleh digunakan di luar fungsi.

Kuasai kaedah praktikal penutupan PHP, penjana, dan teknik refleksi Kuasai kaedah praktikal penutupan PHP, penjana, dan teknik refleksi Sep 13, 2023 pm 01:22 PM

Kaedah praktikal untuk menguasai teknologi penutupan, penjana, dan refleksi PHP memerlukan contoh kod khusus Dalam pengaturcaraan PHP, penutupan, penjana dan teknologi refleksi adalah tiga teknologi yang sangat penting dan berguna. Artikel ini akan memperkenalkan konsep asas dan penggunaan ketiga-tiga teknologi ini, dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menerapkannya dengan lebih baik. 1. Penutupan Penutupan ialah fungsi khas yang mempunyai keupayaan untuk mengakses konteks apabila ia dicipta, walaupun persekitaran tidak lagi wujud. Penutupan ditakrifkan menggunakan penggunaan kata kunci. Berikut ialah contoh mudah yang menunjukkan penutupan

Cara menggunakan penutupan, penjana, dan teknik pantulan PHP untuk pengaturcaraan yang cekap Cara menggunakan penutupan, penjana, dan teknik pantulan PHP untuk pengaturcaraan yang cekap Sep 13, 2023 pm 03:06 PM

Cara menggunakan penutupan, penjana dan teknologi pantulan PHP untuk pengaturcaraan yang cekap Pengenalan: PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web, dan penutupan, penjana dan teknologi pantulan adalah ciri yang berkuasa dan fleksibel dalam PHP. Dengan menggunakan teknik ini dengan mahir, pembangun boleh menulis kod yang lebih cekap dan lebih mudah diselenggara. Artikel ini akan memperkenalkan konsep penutupan, penjana dan teknik pantulan secara terperinci serta memberikan contoh kod khusus untuk membantu pembaca memahami dan menggunakan teknik ini dengan lebih baik. 1. Penutupan Penutupan bermaksud bahawa ia boleh serba lengkap (

Memahami dengan mendalam prinsip asas penutupan PHP, penjana dan teknologi pantulan Memahami dengan mendalam prinsip asas penutupan PHP, penjana dan teknologi pantulan Sep 13, 2023 pm 12:52 PM

Untuk memahami dengan mendalam prinsip asas penutupan, penjana dan teknologi pantulan PHP, contoh kod khusus diperlukan Dalam pengaturcaraan PHP, penutupan, penjana dan teknologi pantulan adalah ciri yang sangat penting dan biasa digunakan. Memahami prinsip asasnya boleh membantu kita menggunakannya dengan lebih baik dan menerapkannya dengan lebih fleksibel dalam pembangunan sebenar. 1. Prinsip asas penutupan Penutupan bermaksud pembolehubah dalam skop luaran fungsi boleh diakses dari dalam fungsi Walaupun fungsi dipanggil di luar fungsi, pembolehubah ini masih boleh diakses. Prinsip asas: Apabila PHP melaksanakan penutupan, ia akan mencipta a

Penjelasan terperinci tentang fungsi penutupan dan masalah biasa dalam PHP Penjelasan terperinci tentang fungsi penutupan dan masalah biasa dalam PHP Jun 09, 2023 am 09:46 AM

Penjelasan terperinci tentang fungsi penutupan dan masalah biasa dalam PHP Dalam PHP, fungsi penutupan ialah jenis fungsi khas yang membolehkan fungsi diluluskan dan dikembalikan sebagai parameter, dan pembolehubah luaran boleh diakses di dalam fungsi. Dalam artikel ini, kita akan melihat lebih dekat pada fungsi penutupan dalam PHP dan masalah biasa mereka. Apakah fungsi penutupan? Fungsi penutupan ialah fungsi tanpa nama yang mempunyai akses kepada pembolehubah dalam skop definisinya. Biasanya, skop definisi fungsi terhad kepada fungsi itu sendiri, tetapi fungsi penutupan boleh mengakses pembolehubah dalam skop definisi, walaupun selepas fungsi selesai dilaksanakan.

Cara menggunakan penutupan PHP, penjana dan teknik refleksi untuk meningkatkan kebolehselenggaraan kod Cara menggunakan penutupan PHP, penjana dan teknik refleksi untuk meningkatkan kebolehselenggaraan kod Sep 13, 2023 am 11:51 AM

Cara menggunakan penutupan PHP, penjana dan teknik refleksi untuk meningkatkan kebolehselenggaraan kod Pengenalan: Kebolehselenggaraan adalah faktor yang sangat penting dalam proses pembangunan perisian. Kod yang boleh diselenggara boleh diubah suai, dilanjutkan dan dinyahpepijat dengan mudah, menjadikan projek lebih fleksibel dan mantap. Artikel ini akan memperkenalkan cara untuk meningkatkan kebolehselenggaraan kod dengan menggunakan penutupan, penjana dan teknik refleksi dalam PHP, dan menggambarkannya melalui contoh kod tertentu. 1. Penggunaan penutupan Penutupan ialah fungsi yang boleh menangkap pembolehubah konteks Ia boleh digunakan untuk mencapai struktur kod yang lebih fleksibel.

See all articles