在PHP中,回呼是一個可呼叫類型的函數物件/參考;回呼(或可呼叫)變數可以用作函數、物件方法和靜態類別方法。實現回調有多種方法,以下這篇文章就來介紹一些,希望對大家有幫助。 【影片教學推薦:PHP教學】
1、標準回呼
範例:使用call_user_func( )函數呼叫一個函數,其中包含的參數是函數名稱。
<?php header("content-type:text/html;charset=utf-8"); function text1(){ echo '这个是text1<br>'; }; call_user_func('text1'); ?>
輸出:
这个是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); ?>
#輸出:
PHP中文网 __invoke()函数
4、閉包回呼
範例:使用array_map()函數對閉包函數賦予的有效參數數組進行標準調用或映射閉包函數,可以使閉包函數可調用,其中參數是閉包函數及其有效參數的數組。
<?php header("content-type:text/html;charset=utf-8"); // 用于输出<br> $print_function = function($string) { echo $string."<br>"; }; // 字符串数组 $string_array = array("PHP", "Python", "MySQL"); // 可调用闭包 array_map($print_function, $string_array); ?>
輸出:
PHP Python MySQL
以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !
以上是PHP中如何實現回呼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!