劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-02-10 10:21
PHP中的回撥函式是怎麼實現的?
2
回覆列表
1 # 未了情這
第一種, 常規的php全域性函式 function test($echo){ echo $echo, "\n";} $param = array("
www.zeroplace.cn
"); call_user_func_array(test, $param);call_user_func_array("test", $param); 輸出:
www.zeroplace.cn
www.zeroplace.cn
兩種呼叫方式都可以成功呼叫, 說明call_user_func_array呼叫常規php局函式時的第一個引數可以為函式本身,也可以為表示函式名的字串。 第二種, 類的靜態方法class TestC{ static function test($echo) { echo $echo, "\n"; }} $param = array("
www.zeroplace.cn
"); call_user_func_array(array(TestC, "test"), $param);call_user_func_array(array("TestC", "test"), $param); 輸出:
www.zeroplace.cn
www.zeroplace.cn
這時傳第一個引數的時候傳了一個數據。陣列的第一個元素可以為類本身,也可以為類名的一個字串。第二個元素則是一個表示方法名的字串。 第三種,物件的方法class TestC{ protected $_a = "hello word"; function test($echo) { $this->_a = $echo; } function show() { echo $this->_a, "\n"; }} $param = array("
www.zeroplace.cn
");$obj = new TestC();call_user_func_array(array($obj, "test"), $param);$obj->show();$obj->test("WEB應用開發");$obj->show(); 輸出:
www.zeroplace.cn
WEB應用開發 這裡是呼叫一個物件的方法。從test方法中設定物件的_a成員,然後透過show方法將它顯示出來,以驗證call_user_func_array呼叫方法時可以正確等到$this指標。這裡輸出的結果表明已經上面的方法是奏效的。其實回撥物件的方法還有一種更加簡單的方法,直接$obj->{$method}()就可以呼叫,只要{$method}是存在的。
發表回復
∧
中秋節和大豐收的關聯?
∨
如果可以選擇,你還會結婚嗎?為什麼?
熱門排行
pubgwow模式是什麼?
等女孩子出門等了很久的文案?
張學友澳門演唱會坐多少人?
如何治白蟻?
洗臉盆溢水孔反味怎麼辦?
羊肉一週吃幾次?
光紀之約通行證一週可以全領嗎?
0.025乘以16等於多少怎麼驗算?
怎麼給小芭比做衣服和裙子?
服裝壓膠注意事項?
第一種, 常規的php全域性函式 function test($echo){ echo $echo, "\n";} $param = array("
www.zeroplace.cn
"); call_user_func_array(test, $param);call_user_func_array("test", $param); 輸出:www.zeroplace.cn
www.zeroplace.cn
兩種呼叫方式都可以成功呼叫, 說明call_user_func_array呼叫常規php局函式時的第一個引數可以為函式本身,也可以為表示函式名的字串。 第二種, 類的靜態方法class TestC{ static function test($echo) { echo $echo, "\n"; }} $param = array("www.zeroplace.cn
"); call_user_func_array(array(TestC, "test"), $param);call_user_func_array(array("TestC", "test"), $param); 輸出:www.zeroplace.cn
www.zeroplace.cn
這時傳第一個引數的時候傳了一個數據。陣列的第一個元素可以為類本身,也可以為類名的一個字串。第二個元素則是一個表示方法名的字串。 第三種,物件的方法class TestC{ protected $_a = "hello word"; function test($echo) { $this->_a = $echo; } function show() { echo $this->_a, "\n"; }} $param = array("www.zeroplace.cn
");$obj = new TestC();call_user_func_array(array($obj, "test"), $param);$obj->show();$obj->test("WEB應用開發");$obj->show(); 輸出:www.zeroplace.cn
WEB應用開發 這裡是呼叫一個物件的方法。從test方法中設定物件的_a成員,然後透過show方法將它顯示出來,以驗證call_user_func_array呼叫方法時可以正確等到$this指標。這裡輸出的結果表明已經上面的方法是奏效的。其實回撥物件的方法還有一種更加簡單的方法,直接$obj->{$method}()就可以呼叫,只要{$method}是存在的。