av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

PHP基礎(chǔ)之?dāng)?shù)據(jù)類型9——回調(diào)類型(callback)

瀏覽:5日期:2022-09-14 13:20:05

自 PHP 5.4 起可用 callable 類型指定回調(diào)類型 callback。本文檔基于同樣理由使用 callback 類型信息。

一些函數(shù)如 call_user_func() 或 usort() 可以接受用戶自定義的回調(diào)函數(shù)作為參數(shù)。回調(diào)函數(shù)不止可以是簡單函數(shù),還可以是對(duì)象的方法,包括靜態(tài)類方法。

傳遞

一個(gè) PHP 的函數(shù)以 string 類型傳遞其名稱。可以使用任何內(nèi)置或用戶自定義函數(shù),但除了語言結(jié)構(gòu)例如: array(), echo, empty(), eval(), exit(), isset(), list(), print 或 unset()。

一個(gè)已實(shí)例化的對(duì)象的方法被作為數(shù)組傳遞,下標(biāo) 0 包含該對(duì)象,下標(biāo) 1 包含方法名。

靜態(tài)類方法也可不經(jīng)實(shí)例化該類的對(duì)象而傳遞,只要在下標(biāo) 0 中包含類名而不是對(duì)象。自 PHP 5.2.3 起,也可以傳遞 ’ClassName::methodName’。

除了普通的用戶自定義函數(shù)外, create_function() 可以用來創(chuàng)建一個(gè)匿名回調(diào)函數(shù)。自 PHP 5.3.0 起也可傳遞 closure 給回調(diào)參數(shù)。

Example #1 回調(diào)函數(shù)示例

<?php

// An example callback function

function my_callback_function() {

???echo ’hello world!’;

}

// An example callback method

class MyClass {

???static function myCallbackMethod() {

???????echo ’Hello World!’;

???}

}

// Type 1: Simple callback

call_user_func(’my_callback_function’);

// Type 2: Static class method call

call_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 'An';

???}

}

class B extends A {

???public static function who() {

???????echo 'Bn';

???}

}

call_user_func(array(’B’, ’parent::who’)); // A

?>

Example #2 使用 Closure 的示例

<?php

// Our closure

$double = function($a) {

???return $a * 2;

};

// This is our range of numbers

$numbers = range(1, 5);

// Use the closure as a callback here to

// double the size of each element in our

// range

$new_numbers = array_map($double, $numbers);

print implode(’ ’, $new_numbers);

?>

以上例程會(huì)輸出:

2 4 6 8 10

Note: 在 PHP 4 中,需要使用一個(gè)引用來創(chuàng)建一個(gè)指向具體對(duì)象的回調(diào)函數(shù),而不是一個(gè)拷貝。參見引用的解釋。

Note:

在函數(shù)中注冊(cè)有多個(gè)回調(diào)內(nèi)容時(shí)(如使用 call_user_func() 與 call_user_func_array()),如在前一個(gè)回調(diào)中有未捕獲的異常,其后的將不再被調(diào)用。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 成人精品鲁一区一区二区 | 日韩精品在线观看网站 | 婷婷激情综合 | 国产精品伦理一区 | 日韩精品久久一区二区三区 | 亚洲一区| 在线欧美a| 欧美三级视频在线观看 | 狠狠躁夜夜躁人人爽天天高潮 | 奇米视频777 | 九九久久精品 | 毛片a级 | 精品一区二区久久久久久久网站 | 夜久久| 91九色视频 | 91大神在线资源观看无广告 | 99精品国产一区二区三区 | 99久久精品免费 | 亚洲美女视频 | 欧美精品三区 | 日韩精品人成在线播放 | www.亚洲视频.com | 在线日韩| 三极网站 | 亚洲视频一区二区三区四区 | 成人免费视频播放 | 欧美日韩在线一区 | av免费在线观看网站 | 欧美操操操 | 国产视频三区 | 99综合网 | 日韩一区在线播放 | 日韩国产三区 | 玖玖操| 国产成人精品视频 | 台湾av在线 | 国产xxxx搡xxxxx搡麻豆 | 成人免费观看男女羞羞视频 | 超碰免费在线 | 99精品久久 | 2022精品国偷自产免费观看 |