Home  >  Article  >  Backend Development  >  Detailed explanation of how to call user-defined functions in php

Detailed explanation of how to call user-defined functions in php

WBOY
WBOYOriginal
2016-07-25 08:57:021051browse
Share the methods of calling user-defined functions in PHP. There are simple and complex methods. It is suitable for reference by friends who are new to PHP custom functions.

There are custom functions in php, and the call_user_func function, call_user_func_array function, and call_user_func function are often used.

1. The call_user_func function is similar to a special method of calling a function. The method of use is as follows:

<?php
//call_user_func函数
//by bbs.it-home.org
function a($b,$c)   
{   
echo $b;   
echo $c;   
}   
call_user_func('a', "111","222");   
call_user_func('a', "333","444");   
//显示 111 222 333 444   
?>

It’s strange to call the method inside the class. Array is used, which saves the new operation and saves resources to a certain extent:

<?php
class a {   
function b($c)   
{   
echo $c;   
}   
}   
call_user_func(array("a", "b"),"111");   
//显示 111   
?>

2. The call_user_func_array function is very similar to call_user_func, except that the parameters are passed in a different way to make the parameter structure clearer. For example:

<?php
//call_user_func_array 调用自定义函数
//by bbs.it-home.org
function a($b, $c)   
{   
echo $b;   
echo $c;   

}   
call_user_func_array('a', array("111", "222"));   
//显示 111 222   
?>

The call_user_func_array function can also call methods inside the class. For example:

<?php
Class ClassA   
{
function bc($b, $c) {   
     $bc = $b + $c;   
echo $bc;   
}   
}   
call_user_func_array(array('ClassA','bc'), array("111", "222"));   

//显示 333   
?>

3. Both the call_user_func function and the call_user_func_array function support references, which makes them more functionally consistent with ordinary function calls:

<?php
//call_user_func函数 调用自定义函数
//by bbs.it-home.org
function a($b)   
{   
$b++;   
}   
$c = 0;   
call_user_func('a', $c);   
echo $c;//显示 1   
call_user_func_array('a', array($c));   
echo $c;//显示 2  
?>

In addition, both the call_user_func function and the call_user_func_array function support references.

<?php
function increment(&$var)
{
    $var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn