首頁  >  文章  >  後端開發  >  php中三個呼叫使用者自訂函數實例詳解

php中三個呼叫使用者自訂函數實例詳解

伊谢尔伦
伊谢尔伦原創
2017-06-26 10:01:371211瀏覽

在php中調有自訂函數,常會用到call_user_func函數、call_user_func_array函數、call_user_func函數。

1,call_user_func函數類似於特別的呼叫函數的方法,使用方法如下:

<?php
//call_user_func函数

function a($b,$c)   
{   
echo $b;   
echo $c;   
}   
call_user_func(&#39;a&#39;, "111","222");   
call_user_func(&#39;a&#39;, "333","444");   
//显示 111 222 333 444   
?>

呼叫類別內部的方法比較奇怪,用到了array,省去了new操作,在某種程度上節省了資源:

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

2,call_user_func_array函數和call_user_func很相似,只不過是換了一種方式傳遞了參數,讓參數的結構更清晰。   
例如:

<?php
//call_user_func_array 调用自定义函数

function a($b, $c)   
{   
echo $b;   
echo $c;   
}   
call_user_func_array(&#39;a&#39;, array("111", "222"));   
//显示 111 222   
?>

call_user_func_array函數也可以呼叫類別內部的方法。
例如:

<?php
Class ClassA   
{
function bc($b, $c) {   
     $bc = $b + $c;   
echo $bc;   
}   
}   
call_user_func_array(array(&#39;ClassA&#39;,&#39;bc&#39;), array("111", "222"));   
//显示 333   
?>

3,call_user_func函數和call_user_func_array函數都支援引用,這讓他們和普通的函式呼叫更趨於功能一致:

<?php
//call_user_func函数 调用自定义函数

function a($b)   
{   
$b++;   
}   
$c = 0;   
call_user_func(&#39;a&#39;, $c);   
echo $c;//显示 1   
call_user_func_array(&#39;a&#39;, array($c));   
echo $c;//显示 2  
?>

另外,call_user_func函數和call_user_func_array函數都支援引用。

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

以上是php中三個呼叫使用者自訂函數實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn