【php杂谈】php如何解决函数引用传参不能为空,使用函数回调和global关键词

沉梦小哥哥
预计阅读时长 3 分钟
位置: 首页 php杂谈 正文

php 函数调用有一个引用传参的功能,所谓引用的意思就是你传过来的实参到函数里面,在这个函数里面通过代码改变了这个参数的值,然后这个外部实参的值也会跟着变(变量的内存地址是同一个),这就叫引用传参!


但是呢,函数引用参数有一个缺点,就是不能默认为空,也就是调用函数的时候这个引用参数不能省略!

那么如何解决这个方法,我们就可以用到回调函数!!经初步测试,php5.6及以上是支持的,其他版本未测试!

下面直接上代码

<?php 

$a = '测试';

function hook($value , $call){
	$value = '回调成功了!';
	$call($value);
}

hook($a, function ($data = null ){
	global $a;
	
	$a = $data;

});

echo $a;

这样写的好处就是,我们在执行某个钩子的时候,不需要知道传过来的实参变量名是什么(相当于知道了实参变量名,再global一下)

有了这个操作,就可以实现很多复杂的函数复用,例如知名的thinkPHP框架就用到了类似的技术知识点

效果如下

1111.png


-- 展开阅读全文 --
头像
【vue2】vue css样式篇之组件样式不生效?使用穿透样式即可
« 上一篇 2022-07-13
【php杂谈】 宝塔面板 CentOS 7.x系统Nginx安装swoole教程
下一篇 » 2022-08-20
取消
微信二维码
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]