Heim >Backend-Entwicklung >PHP-Tutorial >PHP通过字符串调用函数的代码

PHP通过字符串调用函数的代码

WBOY
WBOYOriginal
2016-07-25 09:12:27831Durchsuche

学习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. } // www.jbxue.com
  6. call_user_func(array("a", "b"),"111");
  7. //显示 111
  8. ?>
复制代码

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
  7. ?>
复制代码

call_user_func_array函数也可以调用类内部的方法的

  1. Class ClassA{
  2. function bc($b, $c) {
  3. $bc = $b + $c;
  4. echo $bc;
  5. }
  6. } // www.jbxue.com
  7. call_user_func_array(array('ClassA','bc'), array("111", "222"));
  8. //显示 333
  9. ?>
复制代码

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
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn