php closure invoke,php Closure类的运用办法

本文介绍了SQL作为数据库操作的基础语言,强调其在各种数据库中的广泛支持。同时,探讨了PHP中的匿名函数(Closure),包括其引入、特点和使用示例,特别是结合类与对象的绑定功能。此外,还展示了如何通过魔术方法`invoke()`将类转换为闭包。
摘要由CSDN通过智能技术生成

软件安装:装机软件必备包

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。Closure,匿名函数,又称为Anonymous functions,是php5.3的时候引入的。匿名函数就是没有定义名字的函数。这点牢牢记住就能理解匿名函数的定义了。

PHP Closure类之前在PHP预定义接口中介绍过,但它可不是interface哦,它是一个内部的final类。Closure类是用来表示匿名函数的,所有的匿名函数都是Closure类的实例。

$func = function() {

echo 'func called';

};

var_dump($func); //class Closure#1 (0) { }

$reflect =new ReflectionClass('Closure');

var_dump(

$reflect->isInterface(), //false

$reflect->isFinal(), //true

$reflect->isInternal() //true

);

Closure类结构如下:

Closure::construct — 用于禁止实例化的构造函数

Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域。

Closure::bindTo — 复制当前闭包对象,绑定指定的$this对象和类作用域。

看一个绑定$this对象和作用域的例子:

class Lang

{

private $name = 'php';

}

$closure = function () {

return $this->name;

};

$bind_closure = Closure::bind($closure, new Lang(), 'Lang');

echo $bind_closure(); //php

另外,PHP使用魔术方法invoke()可以使类变成闭包:

class Invoker {

public function invoke() {return METHOD;}

}

$obj = new Invoker;

echo $obj(); //Invoker::invoke

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值