PHP匿名函数(闭包)
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。
结合array_walk和匿名函数来实现一个结算功能
array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。
<?php
class anyMouseTest{
//定义商品类型、价格
const IPHONE6_PRICE = 5500;
const XIAOMI4_PRICE = 1999;
const HONERX_PRICE = 799; private $_productSort;
private $_products; public function __construct(){
$this->_productSort = array('iphone6','xiaomi4','honerx');
$this->_products = array();
} public function addProduct($product , $sum){
if(in_array($product , $this->_productSort) && is_int($sum)){
$this->_products[$product] = $sum;
}
} public function getCount($tax){
$count = 0; $callback = function($sum , $product) use ($tax , &$count){
$price = constant(__CLASS__.'::'.strtoupper($product).'_PRICE');
$curPrice = $price* $sum * $tax;
$count += $curPrice;
}; array_walk($this->_products, $callback);
return $count;
}
} $oanyMouse = new anyMouseTest; $oanyMouse->addProduct('iphone6',1);
$oanyMouse->addProduct('honerx',2);
echo $oanyMouse->getCount(1);
其中constant用于返回字符串形式常量的值
PHP匿名函数(闭包)的更多相关文章
- 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...
- php : 匿名函数(闭包) [二]
摘自: http://www.cnblogs.com/yjf512/archive/2012/10/29/2744702.html php的闭包(Closure)也就是匿名函数.是PHP5.3引入的. ...
- php : 匿名函数(闭包) [一]
摘自: http://www.cnblogs.com/starlion/p/3894578.html 一:匿名函数 (在php5.3.0 或以上才能使用) php中的匿名函数(Anonymous fu ...
- javascript匿名函数 闭包
匿名函数 (function(){ console.info("111111111"); })(); var my = (fun ...
- php里面用魔术方法和匿名函数闭包函数动态的给类里面添加方法
1.认识 __set (在给不可访问属性赋值时,__set() 会被调用) 也就是说你再访问一个类里面没有的属性,会出发这个方法 class A{ private $aa = '11'; publ ...
- Go语言 - 函数 | 作用域 | 匿名函数 | 闭包 | 内置函数
函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 介绍 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数可以赋值给变量 函数 ...
- PHP函数(六)-匿名函数(闭包函数)
匿名函数能够临时创建一个没有名称的函数,常用作回调函数参数的值 <?php $test = function($a){ echo "Hello,".$a; }; $test( ...
- JS匿名函数&闭包
<html> <head> <title> test </title> </head> <body> <script ty ...
- php的匿名函数和闭包函数
php的匿名函数和闭包函数 tags: 匿名函数 闭包函数 php闭包函数 php匿名函数 function use 引言:匿名函数和闭包函数都不是特别高深的知识,但是很多刚入门的朋友却总是很困惑,因 ...
随机推荐
- 安卓手机移动端Web开发调试之Chrome远程调试(Remote Debugging)
一.让安卓打debug模式的apk包 二.将电脑中的chrome升级到最新版本,在chrome浏览器地址栏中输入chrome://inspect/#devices: 在智能手机还未普及时,移动设备的调 ...
- GDB:从单线程调试到多线程调试(MFiX单步调试)
GDB:从单线程调试到多线程调试 1. 裸跑GDB 1.1 安装GDB sudo apt-get install gdb 1.2 编译程序 由于需要调试,因此编译的时候需要添加-g编译参数: 1.3 ...
- python全栈开发学习_内容目录及链接
python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...
- 开源一个C# Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- (转)Windows上使用CMake
CMake简介 原文:http://blog.gclxry.com/use-cmake-on-windows/ 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软 ...
- C# 文件读写系列三
1.读写文本文件 在C# 文件读写系列二中列举了相当多的读写文本文件的方法,大致有以下几种: (1).通过静态类File的静态方法来进行文本文件的读写,主要有ReadAllBytes().ReadAl ...
- 【es6】let和const
let 1.不存在变量提升 es5中var和function都存在变量提升,但let声明的变量不存在. 在代码块内,使用let命令声明变量之前,该变量都是不可用的.这在语法上,称为“ ...
- Chapter 6. Names
6.2. Names and Identifiers A name is used to refer to an entity declared in a program. There are two ...
- linux 升级-杂
apt-cache search linux apt-cache search linux | grep generic apt-cache search linux | grep 4.10. apt ...
- linux下perforce(p4)的使用方法和命令
环境变量: export P4PASSWD=abcdefg export P4CLIENT=dyoldfish.com export P4USER=dyoldfish export P4PORT=19 ...