下面的內(nèi)容是來(lái)自php.net 官方文檔
callbacks
call_user_func() ,usort()等函數(shù)接受用戶(hù)自定義的回調(diào)函數(shù)作為參數(shù).
回調(diào)函數(shù)可以不僅僅是簡(jiǎn)單的函數(shù),也可以是對(duì)象方法,包括對(duì)象的靜態(tài)方法.
php 函數(shù)可以通過(guò)字符串類(lèi)型的函數(shù)名進(jìn)行調(diào)用,任何內(nèi)建的或者用戶(hù)自定義的函數(shù)都可以被使用.但是這其中不包括
php的語(yǔ)言結(jié)構(gòu),比如:array(),echo,empty(),eval(),exit(),isset(),list(),print,unset()
調(diào)用類(lèi)的方法是通過(guò)將實(shí)例化的對(duì)象和調(diào)用方法的名稱(chēng)分別作為數(shù)組的第0個(gè)和第1個(gè)參數(shù)來(lái)進(jìn)行調(diào)用.
調(diào)用類(lèi)的靜態(tài)方法可以不用實(shí)例化該類(lèi)的對(duì)象,而是將類(lèi)的名稱(chēng)和靜態(tài)方法的名稱(chēng)分別作為數(shù)組的第0個(gè)和第1個(gè)參數(shù)來(lái) 進(jìn)行調(diào)用.
在php5.2.3以后,也可以通過(guò)使用ClassName::methodName 來(lái)調(diào)用該類(lèi)的靜態(tài)方法.
除了這些通用的用戶(hù)自定義函數(shù),也可以使用匿名函數(shù)作為函數(shù)參數(shù).
<?php // An example callback functionfunction my_callback_function() { echo 'hello world!';}// An example callback methodhtml' target='_blank'>class MyClass { static function myCallbackMethod() { echo 'Hello World!'; }}// Type 1: Simple callbackcall_user_func('my_callback_function'); // Type 2: Static class method callcall_user_func(array('MyClass', 'myCallbackMethod')); // Type 3: Object method call$obj = new MyClass();call_user_func(array($obj, 'myCallbackMethod'));// Type 4: Static class method call (As of PHP 5.2.3)call_user_func('MyClass::myCallbackMethod');// Type 5: Relative static class method call (As of PHP 5.3.0)class A { public static function who() { echo "A"; }}class B extends A { public static function who() { echo "B"; }}call_user_func(array('B', 'parent::who')); // A?> PHP編程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注