php 传递callback,callback如何传参数

今天在阅读框架的时候发现了apl_autoload_register,我们再之前不使用apl_autoload_register的时候有一个__autoload的函数相信大家并不陌生,这是一个用于new一个对象的时候,获取不到对象的时候就会触发这个函数;用来自动加载这个类!而后来php版本在5.1.2后加入了apl_autoload_register函数,用来做自动加载,当前还有一个时代是没有自动加载的时代,据说大家在用到哪个类就要将这个文件引入,想想都很厉害,哈哈哈!

庆幸今天已经站在了巨人的肩膀上吧!

今天主要是说一下callable和callback,我在看到//注册当前类中一个静态方法为自动加载函数

apl_autoload_register(['$this','autoloadClass']);

很奇怪啊!不是说传一个回调函数么?不是说好的是将一个函数注册成为自动加载函数么?这是什么鬼,于是我就查了一下手册,虽然没有全弄懂是应该也弄懂一半了吧!在这里分享一下!

callback和callable是完全相同的,从php5.4以后参数就可以指定类型了;当在函数中传参数时有多种情况!

这这里我只说一下我的理解,spl_autoload_register('functionName');//当给函数传一个字符串时,这里就是函数的名称;

如果这个函数在类里,而你在类外面要使用的时候该怎么办呢!//当给函数传一个数组时,数组的第一个是类名,数组第二个元素是方法名称;这样的使用方式要求方法必须是静态的;

spl_autoload_register(['className','functionName']);

当然你要是还想传字符串,当然没有关系;//可以使一个类名静态调用方法名的字符串;这个要求php版本高于5.2.3

spl_autoload_register('className::functionName');

不觉得这种多样化得方式很灵活么?如果你还不觉得,那就给你调用个父级的方法!

假设B类继承A类,都有相同方法a我们也可以这么写://这个使用方法要求php版本高于5.3.0

spl_autoload_register(['B','parent::a']);

总之想怎么怎么用!不会用?只能是掌握的太少!高手,都是想怎么用就怎么用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值