内容简介:PHP官方文档对于闭包函数的定义:匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。简单来说,闭包函数也是一种数据类型,可以直接使用变量来存储、传参、调用等等。
PHP官方文档对于闭包函数的定义:
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。
简单来说,闭包函数也是一种数据类型,可以直接使用变量来存储、传参、调用等等。
事务
事务简单来说就是一个核心:
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
一般情况下,每一条SQL的执行情况都需要进行判断,如果执行成功则继续,否则回滚事务。以下是PDO事务代码:
$pdo = new PDO('mysql:host=localhost;dbname=demo', 'root', 'root');
try {
$pdo->beginTransaction();
//todo 业务代码
$pdo->commit();
} catch (\Exception $e) {
$pdo->rollBack();
throw $e;
}
PHP实现
几乎所有事务都需要如此处理,但是这样重复代码太多,实际上只需要关心的部分是 业务代码 部分,使用闭包函数可以很好的解决这个问题。
闭包函数可以理解为具体的业务逻辑,不带任何事务相关操作,如果出现异常,会自动回滚事务。
PHP的简单实现代码如下:
function transaction(PDO $pdo, callable $callable)
{
try {
$pdo->beginTransaction();
$result = call_user_func($callable, $pdo);
$pdo->commit();
return $result;
} catch (\Exception $e) {
$pdo->rollBack();
throw $e;
}
}
PHP调用方法代码如下:
transaction($pdo, function (PDO $pdo){
return $pdo->query('INSERT INTO `test` VALUES (1)');
});
结语
使用闭包函数去简化样板代码在生产中是很常见的,具体的 设计模式 应该是类似“模板方法模式”。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能网站建设指南
Steve Souders / 刘彦博 / 电子工业出版社 / 2008年 / 35.00元
本书结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南》中,作者给出了14条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。《高性能......一起来看看 《高性能网站建设指南》 这本书的介绍吧!