A-A+

php通过字符串调用函数示例

2020年10月07日 我爱编程 暂无评论

这篇文章主要介绍了php通过字符串调用函数,需要的朋友可以参考下

1. call_user_func

代码如下:

  1. function a($b,$c){
  2.   echo $b;
  3.   echo $c;
  4. }
  5. call_user_func('a'"111","222");
  6. call_user_func('a'"333","444");
  7. //显示 111 222 333 444
  8. ?>

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:

  1. class a {
  2.   function b($c){
  3.     echo $c;
  4.   }
  5. }
  6. call_user_func(array("a""b"),"111");
  7. //显示 111

2. call_user_func_array

call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:

  1. function a($b$c){
  2.   echo $b;
  3.   echo $c;
  4. }
  5. call_user_func_array('a'array("111""222"));
  6. //显示 111 222

call_user_func_array函数也可以调用类内部的方法的,代码如下:

  1. Class ClassA{
  2.   function bc($b$c) {
  3.       $bc = $b + $c;
  4.     echo $bc;
  5.   }
  6. }
  7. call_user_func_array(array('ClassA','bc'), array("111""222"));
  8. //显示 333

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:代码如下:

  1. function a(&$b){
  2.   $b++;
  3. }
  4. $c = 0;
  5. call_user_func('a', &$c);
  6. echo $c;//显示 1
  7. call_user_func_array('a'array(&$c));
  8. echo $c;//显示 2

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录