国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 > php教程 > php手冊 > 正文

php回調(diào)函數(shù)

php中文網(wǎng)
發(fā)布: 2016-06-06 20:14:05
原創(chuàng)
1834人瀏覽過

php很多函數(shù)都支持回調(diào)函數(shù)例如:array_udiff,array_usort回調(diào)函數(shù)函數(shù)需要傳入一個callback類型當(dāng)作他的參數(shù),官方文檔里面明確指出了6種支持的回調(diào)函數(shù)參數(shù)傳入方式。 1.普通的全局方法 2.對象的方法,傳入數(shù)組當(dāng)作參數(shù) 3.靜態(tài)方法調(diào)用,傳入數(shù)組當(dāng)作參數(shù) 4

php很多函數(shù)都支持回調(diào)函數(shù)例如:array_udiff,array_usort…回調(diào)函數(shù)函數(shù)需要傳入一個callback類型當(dāng)作他的參數(shù),官方文檔里面明確指出了6種支持的回調(diào)函數(shù)參數(shù)傳入方式。
1.普通的全局方法
2.對象的方法,傳入數(shù)組當(dāng)作參數(shù)
3.靜態(tài)方法調(diào)用,傳入數(shù)組當(dāng)作參數(shù)
4.靜態(tài)方法調(diào)用,傳入字符串當(dāng)作參數(shù)
5.父類的普通方法
6.閉包或者說匿名方法

<?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
//靜態(tài)方法調(diào)用,這時候傳入的是一個數(shù)組
call_user_func(array('MyClass', 'myCallbackMethod')); 
// Type 3: Object method call
//對象的方法,這時候傳入的是一個數(shù)組
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
// Type 4: Static class method call (As of PHP 5.2.3)
//以字符串的形式傳入靜態(tài)方法
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\n";
    }
}
class B extends A {
    public static function who() {
        echo "B\n";
    }
}
call_user_func(array('B', 'parent::who')); // A
//Type 6: 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);
?>
登錄后復(fù)制

這些都是在類的外部調(diào)用匿名函數(shù),當(dāng)我們想在類的內(nèi)部調(diào)用一個屬于本類的方法的時候該怎么辦呢?
這時候我們可以使用$this

<?php
class MyClass {
    public $property = 'Hello World!';
    public function MyMethod(){
        call_user_func(array($this, 'myCallbackMethod'));
    }
    public function MyCallbackMethod(){
        echo $this->property;
    }
}
?>
登錄后復(fù)制

以前我曾愚蠢的在一個單獨類文件里面頭部或者尾部定義一個全局方法來搞定這個事情,后來才發(fā)現(xiàn)原來可以這樣調(diào)用,希望對大家有幫助。
這個調(diào)用方式在官方文檔下面的評論里面有人給出,

PHP速學(xué)教程(入門到精通)
PHP速學(xué)教程(入門到精通)

PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號