博客列表 >callback如何传参数

callback如何传参数

耶和华信徒的博客
耶和华信徒的博客原创
2018年01月26日 11:46:033328浏览

        今天在阅读框架的时候发现了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']);

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议