<?php
class Product {
public $name;
public $price;
function __construct($name, $price){
$this->name = $name;
$this->price = $price;
}
}
class ProcessSale {
private $callbacks;
function registerCallback( $callback){
if(! is_callable( $callback)){
throw new Exception("callback not callable");
}
$this->callbacks[] = $callback;
}
function sale($product){
print "{$product->name} : processing \n";
foreach ($this->callbacks as $callback){
call_user_func($callback,$product);
}
}
}
//?? ?????????????????????????????????
// ?????????????????????????????
$logger = create_function('$product', 'print " logging({$product->name})\n";');
//create_function ??????
$processor =new ProcessSale();
$processor->registerCallback($logger);
$processor->sale(new Product("shoes", 6));
print "\n";
$processor->sale(new Product("coffee", 6));
//??? php5.3+
print "-------------------------\n";
$logger2 = function($product){
print "loggin({$product->name}) \n";
};
$processor =new ProcessSale();
$processor->registerCallback($logger2);
$processor->sale(new Product("shoes2", 3));
print "\n";
$processor->sale(new Product("coffee2", 3));
print "-------------------------\n";
匿名函数-
PHP回调与匿名函数实践
最新推荐文章于 2021-11-30 09:26:39 发布
本文探讨了PHP中使用回调函数和匿名函数进行产品销售处理的实际应用。通过具体示例,展示了如何创建产品类和销售处理类,以及如何注册和使用回调函数来处理不同产品的销售流程。同时,对比了传统create_function()与现代匿名函数的用法。
3333

被折叠的 条评论
为什么被折叠?



