PHP calluserfuncarray函数

2022-12-19 0 1,068

PHP calluserfuncarray函数

前段时间做两个机能,须要静态初始化一大批选定表达式,那些表达式还原属相同的类。须要初始化的类和方式存有两个三维字符串中:

$needDo = array(

{

className=>xxx,

methodName=>xxx

},

……

);

所以各method 的模块都为空,依照那个情形只好我想不到了calluserfuncarray 那个表达式。

那个表达式能静态的初始化某一类中的某一方式,因此能传达任两个模块,对现阶段那个情景可以说是极为的适宜了。

上面具体内容说说那个表达式的用语。

得出的表述是这种的:

calluserfuncarray :初始化反弹表达式,并把两个字符串模块做为反弹表达式的模块。

表明:mixed calluserfuncarray ( callable $callback , array $paramarr )

把第二个模块做为反弹表达式(callback)初始化,把模块字符串做(paramarr)为反弹表达式的的模块传至。

回到反弹表达式的结论。假如手忙脚乱不然就回到FALSE

比如初始化的方式不存有或者类不存有都会回到 FALSE

使用方式主要有以下两种:

一、类内表达式的初始化

首先呢,那个表达式能支持反弹类内的方式,那个时候该表达式的第二个模块就不必是字符串了,直接把要初始化的类内方式的签名放到第二个模块的位置就能,第二个模块依照实际情形将之顺序放入到字符串中即可。

如:

class a { public function b ($c){return $c;} calluserfuncarray(b, array($e))}

二、初始化其他类的方式

那个情形会比较复杂,那个时候呢该表达式的第二个模块的类名能是两个对象,也能是两个未经初始化的类。方式呢能支持静态方式和非静态方式。

1、无需实例化初始化类的静态方式

calluserfuncarray(array(className,staticMethodName), array(param1));

2、不实例化初始化类的非静态方式

calluserfuncarray(array(className,methodName), array(param1));

这种方式使用须要谨慎一点,因为这种使用不然类是没有实例化的,假如初始化的方式中有$this语句,会报错,因为$this 指向的是现阶段类的两个实例,没有实例化,$this 就是两个空指针,空指针引用是会fatal 的,所以那个方式的使用须要当心一点。

3、初始化实例化后的类的非静态方式

$obj = new ClassName();

calluserfuncarray(array($obj,methodName), array(param1));

该表达式的第二个模块假如是对象不然,支持传达对象的指针。

calluserfuncarray(array(&$obj,methodName), array(param1));

拓展:

与该表达式特别相似的两个表达式是 calluserfunc。

该方式的表述如下:

calluserfunc(callable $callback, mixed $parameter =?, mixed $…= ?): mixed

第二个模块 callback 是被初始化的反弹表达式,其余模块是反弹表达式的模块。

模块 callback

将被初始化的反弹表达式(callable)。

模块 parameter

0个或以上的模块,被传至反弹表达式。

注意:

请注意,传至calluserfunc()的模块不能为引用传达。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务