成都网站建设设计

将想法与焦点和您一起共享

php闭包数据库事务 PHP 闭包

PHP闭包函数传参及使用外部变量的方法

本文实例讲述了PHP闭包函数传参及使用外部变量的方法。分享给大家供大家参考,具体如下:

成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元察哈尔右翼中旗做网站,已为上家服务,为察哈尔右翼中旗各地企业和个人服务,联系电话:18982081108

在Laravel控制器写两个方法,一个是在内部创建一个闭包函数,一个是执行传过来的闭包函数,测试闭包的写法,use使用外部变量,及闭包函数的传参。如下:

//测试闭包传参及use使用外部变量

public

function

testClosure($t1,

$t2)

{

$closure

=

function

($param1,

$param2)

use

($t1,

$t2)

{

echo

$param1.$param2.$t1.$t2;

};

$this-execClosure('test.closure',

$closure);

}

//执行闭包函数

protected

function

execClosure($name,

Closure

$closure)

{

echo

'Closure

func

name:'.$name;

echo

'br';

$closure('p1',

'p2');

}

在routes.php添加路由:

复制代码

代码如下:Route::get('/test/closure/{t1}/{t2}',['uses'='TestController@testClosure']);

访问

浏览器输出结果:

Closure

func

name:test.closure

p1p2hehe1hehe2

转自:小谈博客

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

PHP中的闭包有什么用处

闭包其实就是外部函数定义的内部函数。

闭包的作用及好处:闭包给访问外部函数定义的内部变量创造了条件。也将关于函数的一切封闭到了函数内部,减少了全局变量,这也是闭包的真实含义。

php方法中如何获取闭包的值?

亲,你好,很高兴为你解答该问题

首先,你的这个写法是有问题的哦!~

class A {                          

public function aa() {         

// 函数体为空,所以外面不会有任何输出,即使设置变量来接受该方法,也不会有任何返回

// 所以你肯定拿不到123                                                                                  

}                              

}                                  

$a = new A;                        

$a-aa(function () {  // aa方法是不接受任何参数的,这个传了闭包进去

return 123;                    

});

要想拿到闭包中的123,你需要这样写才可以呦~~

class A {                          

public function aa($closure) {  // aa方法接受一个闭包函数进来

return $closure(123);       // 调用闭包函数,传入相应参数,并将闭包返回的值再次返回出去

}                              

}                                  

$a = new A;                        

$b = $a-aa(function ($param) {   // 给aa传入一个带一个参数的闭包

return $param;                       // 闭包方法返回传入的参数

});                                

var_dump($b);

希望可以帮到你,给我个采纳呦!~~

请教大神 ThinkPHP5 的事务回滚问题

请看手册:

使用 transaction 方法操作数据库事务,当发生异常会自动回滚,例如:

自动控制事务处理

Db::transaction(function(){

Db::table('think_user')-find(1);

Db::table('think_user')-delete(1);

});

也可以手动控制事务,例如:

// 启动事务

Db::startTrans();

try{

Db::table('think_user')-find(1);

Db::table('think_user')-delete(1);

// 提交事务

Db::commit();

} catch (\Exception $e) {

// 回滚事务

Db::rollback();

}

注意在事务操作的时候,确保你的数据库连接是相同的。


名称栏目:php闭包数据库事务 PHP 闭包
标题链接:http://chengdu.cdxwcx.cn/article/hhicid.html