在PHP中,回調是一個可調用類型的函數對象/引用;回調(或可調用)變量可以用作函數、對象方法和靜態類方法。實現回調有多種方法,下面本篇文章就來介紹一些,希望對大家有所幫助。【視頻教程推薦:PHP教程】
1、標準回調
示例:使用call_user_func()函數調用一個函數,其中包含的參數是函數名稱。
1
2
3
4
5
6
7
8
<?php
header("content-type:text/html;charset=utf-8");
function text1(){
echo '這個是text1<br>';
};
call_user_func('text1');
?>
輸出:
1
這個是text1
說明:調用了一個call_user_func()函數,然後call_user_func()函數在執行過程中又往回調用了 text1()函數。
2、靜態類方法回調
示例:使用call_user_func()函數調用靜態類方法,其中的參數是一個包含類名稱和要調用的方法的數組。
<?php
header("content-type:text/html;charset=utf-8");
class Demo {
// 用於輸出字符串的函數
static function someFunction() {
echo "父級函數輸出 <br>";
}
}
class Article extends Demo {
// 用於輸出字符串的函數
static function someFunction() {
echo "子級函數輸出 <br>";
}
}
// 靜態類方法回調
call_user_func(array('Article', 'someFunction'));
call_user_func('Article::someFunction');
// 相對靜態類方法回調
call_user_func(array('Article', 'parent::someFunction'));
?>
輸出:
子級函數輸出
子級函數輸出
父級函數輸出
3、對象方法回調
示例:使用call_user_func()函數調用對象方法,其中參數是包含對象變量和要調用方法的字符串名稱的數組。
<?php
header("content-type:text/html;charset=utf-8");
class Demo {
// 輸出字符串的函數
static function someFunction() {
echo "PHP中文網 <br>";
}
// 輸出字符串的函數
public function __invoke() {
echo "__invoke()函數<br>";
}
}
// 類對象
$obj = new Demo();
// 對象方法調用
call_user_func(array($obj, 'someFunction'));
call_user_func($obj);
?>
輸出:
1
2
PHP中文網
__invoke()函數
4、閉包回調
示例:使用array_map()函數對閉包函數賦予的有效參數數組進行標準調用或映射閉包函數,可以使閉包函數可調用,其中參數是閉包函數及其有效參數的數組。
<?php
header("content-type:text/html;charset=utf-8");
// 用於輸出<br>
$print_function = function($string) {
echo $string."<br>";
}; html中文網
// 字符串數組
$string_array = array("PHP", "Python", "MySQL");
// 可調用閉包
array_map($print_function, $string_array);
?>
輸出:
PHP
Python
MySQL
以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以關注php中文網相關教程欄目!!!