首页 > 后端开发 > 正文

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

2024-08-24 09:41:13 | 我爱编程网

今天我爱编程网小编整理了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);

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

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

php闭包函数用use传参有什么意义?

所谓闭包,就是定义一段代码,同时对当时的运行上下文做一个快照,并捆绑在一起,用于在将来的某个时候让这段代码在当初的这个上下文中运行。 如你所写,当这个函数被当作函数返回值时,在别的地方调用时,还还可以使用$d,$e,$f的值。

function print_log($person,$word) {
echo($person.'say:'.$word."\n");
}

function print_log_by($person){
return function($log) use(&$person) {
print_log($person,$log);
};
}

$my_print_log = print_log_by('student1');
$my_print_log("hello");

$your_print_log = print_log_by('student2');
$your_print_log('hello');

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

php如何序列化/存储闭包(Closure)

我爱编程网(https://www.52biancheng.com)小编还为大家带来php如何序列化/存储闭包(Closure)的相关内容。

实在需要序列化,可以用反射(Reflection),并直接操作代码文件获得上下文信息:/*** 创建一个反射:*/$reflection = new ReflectionFunction($closure);/*** 参数可以直接得到了:*/$params = $reflection-getParameters();/*** 获得Closure的函数体和use变量,形如: * function($arg1, $arg2, ...) use ($val1, $val2, ...) { * // 要获得这个部分的代码!* }* 办法很多,你可以直接用正则、字符串查找或者Tokenizer,等等等等。 * 比如可以先从reflection里得到函数的开始行和结束行:*/$startLine = $reflection-getStartLine(); $endLine = $reflection-getEndLine(); // 然后用str*这个,str*那个的函数来清理,细节不写了:

以上就是php方法中如何获取闭包的值?全部内容,更多相关信息,敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php方法中如何获取闭包的值?”相关推荐
Laravel 中的闭包参数是如何传入的
Laravel 中的闭包参数是如何传入的

Laravel中的闭包参数是如何传入的亲,你好,PHP中闭包参数的传入是通过use关键字进行传入的。Laravel是PHP的一个框架,所以在里面使用的闭包函数中传入参数依然是使用use关键字的。例如:下面的PHP脚本程序运行结果如下:Array(    [0] =>     [1] => Array        (            [name] =&g

2024-08-20 03:56:49
php如何获取类所有方法名
php如何获取类所有方法名

php如何获取类所有方法名php获取类所有方法名的方法:1、取得当前语句所在类的类名,代码为【get_class(classname)】;2、取得classname类的所有的方法名,代码为【get_class_methods(classname)】。【相关学习推荐:php编程(视频)】php获取类所有方法名的方法:1.获取行号、文件路径文件名、类名、方法名的常量__LIN

2024-10-21 14:44:41
如何获取php扩展库源代码包
如何获取php扩展库源代码包

如何获取php扩展库源代码包您需要告诉构建系统在编译时链接到共享库。这允许依赖项存储在已编译的PHP扩展中,在第一次使用时将加载它。为此,您需要修改config.m4以添加库。你可以通过PHP_ADD_LIBRARY宏来做到这一点。此宏将一个库添加到链接行并具有该表单PHP_ADD_LIBRARY($name,$append,$var)。第一个参数是库的名称;这是*.so没有lib前

2024-10-05 01:57:36
php页面如何获取请求的url中的参数值
php页面如何获取请求的url中的参数值

urlPHPURL地址获取函数代码端口等推荐在PHP中,获取URL地址是一个基础但重要的操作,涉及到当前脚本的路径、域名、端口等信息。以下是一些用于获取不同URL信息的代码示例。首先,获取当前脚本网址(只包含路径)的代码如下:phpfunctionGetCurUrl(){if(!empty($_SERVER["REQUEST_URI"])){$scrtName=$_S

2024-11-21 14:14:00
PHP问题 如何获取 confirm的返回值?
PHP问题 如何获取 confirm的返回值?

PHP问题如何获取confirm的返回值?<input type="button" value="删除" name="del" id="submit"/><script>$(function(){    $('#submit').click(function(){        var a = confirm('确认删除?'); //弹出confirm框       

2024-09-04 06:21:29
PHP 如何获取图片的哈希值啊。。
PHP 如何获取图片的哈希值啊。。

PHP如何获取图片的哈希值啊。。你好,哈希算法很多,自带有,sha1函数跟md5函数,获取图片的哈希值要读取内容去运算,如$file=file_get_contents("图片路径");echosha1($file);//哈希值,echomd5($file);//md5值,这两个都是摘要。谢谢php修改文档属性摘要的标题怎么设置php修改文档属性摘要的标题设置方法:1、

2024-09-18 10:21:43
在php环境中,从oracle中获取数据如何提取具体值?
在php环境中,从oracle中获取数据如何提取具体值?

PHP中处理异常有几种方式?请详述php中异常处理方法总结:当异常被触发时,通常会发生:在PHP5中添加了类似于其它语言的错误异常处理模块。在PHP代码中所产生的异常可被throw语句抛出并被catch语句捕获。需要进行异常处理的代码都必须放入try代码块内,以便捕获可能存在的异常。每一个try至少要有一个与之对应的catch。使用多个catch可以捕获不同的类所产生的异常。当try

2024-12-21 01:46:10
jsp中request.getHeader()获取客户端的各种信息,那php中什么方法来获取
jsp中request.getHeader()获取客户端的各种信息,那php中什么方法来获取

thinkphprequest和param的区别request默认可以接受$_GET,$_POST和$_COOKIE(这是php内置的),$_REQUEST(超全局变量),只是把值获取到,但并不判断是什么类型的数据。param是thinkphp自己的类型,自动判断是什么类型的数据,接收即可。无论什么类型都可以接受,包括php://input这种原生数据流。php中get和reques

2024-09-24 01:24:31