博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP函数处理方法总结
阅读量:6716 次
发布时间:2019-06-25

本文共 4982 字,大约阅读时间需要 16 分钟。

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数

说明

 call_user_func_array (  $callback , array $param_arr )

把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。

参数

callback

被调用的回调函数。

param_arr

要被传入回调函数的数组,这个数组得是索引数组。

返回值

返回回调函数的结果。如果出错的话就返回FALSE

更新日志

版本 说明
5.3.0 对面向对象里面的关键字的解析有所增强。在此之前,使用两个冒号来连接一个类和里面的一个方法,把它作为参数来作为回调函数的话,将会发出一个E_STRICT的警告,因为这个传入的参数被视为静态方法。

范例

Example #1 call_user_func_array()例子

bar() method with 2 arguments$foo = new foo;call_user_func_array(array($foo, "bar"), array("three", "four"));?>

以上例程的输出类似于:

foobar got one and twofoo::bar got three and four

Example #2 call_user_func_array()使用命名空间的情况

以上例程的输出类似于:

Hello Hannes!Hello Philip!

Example #3 把完整的函数作为回调传入call_user_func_array()

以上例程会输出:

int(8)

Example #4 传引用

以上例程会输出:

function mega $a=55global $bar=55

call_user_func

(PHP 4, PHP 5, PHP 7)

call_user_func — 把第一个参数作为回调函数调用

说明

 call_user_func (  $callback [,  $parameter [,  $... ]] )

第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。

参数

callback

将被调用的回调函数()。

parameter

0个或以上的参数,被传入回调函数。

Note:

请注意,传入call_user_func()的参数不能为引用传递。

Example #1 call_user_func() 的参考例子

以上例程会输出:

01

返回值

返回回调函数的返回值。

更新日志

版本 说明
5.3.0 对面向对象里面的关键字的解析有所增强。在此之前,使用两个冒号来连接一个类和里面的一个方法,把它作为参数来作为回调函数的话,将会发出一个E_STRICT的警告,因为这个传入的参数被视为静态方法。

范例

Example #2 call_user_func() 的例子

以上例程会输出:

You wanted a mushroom haircut, no problemYou wanted a shave haircut, no problem

Example #3 call_user_func() 命名空间的使用

以上例程会输出:

Hello world!Hello world!

Example #4 用call_user_func()来调用一个类里面的方法

以上例程会输出:

Hello!Hello!Hello!

Example #5 把完整的函数作为回调传入call_user_func()

以上例程会输出:

[test]

注释

Note:

在函数中注册有多个回调内容时(如使用 call_user_func() 与 ),如在前一个回调中有未捕获的异常,其后的将不再被调用。

create_function

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

create_function — Create an anonymous (lambda-style) function

说明

string create_function ( string $args , string $code )

从传递的参数创建一个匿名函数,并返回一个唯一的名称。

警告

此函数内部执行eval(),因此与eval()具有相同的安全性问题。 此外,它具有不良的性能和内存使用特性。
如果您使用的是PHP 5.3.0或更新版本,则应使用本机匿名函数。

参数

通常这些参数将作为单引号分隔的字符串传递。 使用单引号字符串的原因是保护变量名不被解析,否则,如果使用双引号,则需要转义变量名,例如。\$阿瓦尔。

args

函数参数。

code

功能码。

返回值

以字符串形式返回唯一的函数名称,或者返回错误的FALSE。

范例

Example #1 Creating an anonymous function with create_function()

您可以使用此功能,(例如)从运行时收集的信息创建一个函数:

或者,可能有一般的处理函数可以将一组操作应用于参数列表:

Example #2 Making a general processing function with create_function()

=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';$farr = array( create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'), create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'), create_function('$a,$b', $f1), create_function('$a,$b', $f2), create_function('$a,$b', $f3) );echo "\nUsing the first array of anonymous functions\n";echo "parameters: 2.3445, M_PI\n";process(2.3445, M_PI, $farr);// now make a bunch of string processing functions$garr = array( create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '. 'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'), create_function('$a,$b', '; return "CRCs: " . crc32($a) . ", ".crc32($b);'), create_function('$a,$b', '; return "similar(a,b) = " . similar_text($a, $b, &$p) . "($p%)";') );echo "\nUsing the second array of anonymous functions\n";process("Twas brilling and the slithy toves", "Twas the night", $garr);?>

以上例程会输出:

Using the first array of anonymous functionsparameters: 2.3445, M_PIsome trig: -1.6291725057799a hypotenuse: 3.9199852871011b*a^2 = 4.8103313314525min(b^2+a, a^2,b) = 8.6382729035898ln(a)/b = 0.27122299212594Using the second array of anonymous functions** "Twas the night" and "Twas brilling and the slithy toves"** Look the same to me! (looking at the first 3 chars)CRCs: -725381282, 342550513similar(a,b) = 11(45.833333333333%)

但是,对于lambda风格(匿名)函数来说,最常见的用法是创建回调函数,例如使用array_walk()或usort()

Example #3 Using anonymous functions as callback functions

以上例程会输出:

Array(  [0] => the mango  [1] => a mango  [2] => that mango  [3] => this mango)

一串字符串从较短到较长的顺序排列

以上例程会输出:

Array(  [0] => small  [1] => larger  [2] => a big string  [3] => it is a string thing)

将其从更长到更短的排序

以上例程会输出:

Array(  [0] => it is a string thing  [1] => a big string  [2] => larger  [3] => small)

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call_array — Call a static method and pass the arguments as array

说明

 forward_static_call_array (  $function , array $parameters )

....

....

....

 

 

 

给个目录

  •  — 调用回调函数,并把一个数组参数作为回调函数的参数
  •  — 把第一个参数作为回调函数调用
  •  — Create an anonymous (lambda-style) function
  •  — Call a static method and pass the arguments as array
  •  — Call a static method
  •  — 返回参数列表的某一项
  •  — 返回一个包含函数参数列表的数组
  •  — Returns the number of arguments passed to the function
  •  — 如果给定的函数已经被定义就返回 TRUE
  •  — 返回所有已定义函数的数组
  •  — 注册一个会在php中止时执行的函数
  •  — Register a function for execution on each tick
  •  — De-register a function for execution on each tick

转载地址:http://qzumo.baihongyu.com/

你可能感兴趣的文章
【南京站报名中!】微服务框架到生态,Apache Dubbo 开发者沙龙
查看>>
linux find xargs
查看>>
家纺行业运行大数据正式发布:告诉你家纺行业形势
查看>>
Android多线程源码详解一:handler、looper、message、messageQueue
查看>>
wordpress robot设置
查看>>
unity3d 中控制手机前后摄像头切换
查看>>
MyCAT核心配置详解
查看>>
selenium启动Chrome配置参数问题
查看>>
刚刚,2018年度中国科学十大进展正式发布!
查看>>
为什么游戏服务端用开发效率低的C++来写,其他语言无法胜任吗?
查看>>
Java开发——Redis云管理平台 实现方案CacheCloud 扫盲
查看>>
Apache NiFi 1.9.2 发布,数据处理和分发系统
查看>>
有哪些Java源代码看了后让你收获很多?
查看>>
设置input标签placeholder字体颜色
查看>>
跳出面向对象思想(一) 继承
查看>>
01 聚类算法 - 大纲
查看>>
为什么说“上云就上阿里云”
查看>>
tomcat配置文件详解
查看>>
iOS NSURLSession DownloadTask(下载任务)
查看>>
vue解决字段类型为数字导致单选不正确的问题
查看>>