zoukankan      html  css  js  c++  java
  • PHP函数(五)-回调函数

    回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数

    使用回调函数是为了可以将一段自己定义的功能传到函数内部使用

    声明回调函数的方法

    变量函数声明

    <?php
    	function Calculate($num){
    		for($i=0;$i<=10;$i++){
    			if($num($i)){
    				continue;
    			}
    			echo $i."nbsp";
    		}
    	}
    	
    	function Number_1($a){
    		return $a%2 == 0; //打印不能被2整除的数
    	}
    	
    	function Number_2($b){
    		return $b >=6; //打印小于6的数
    	}
    	
    	Calculate("Number_1");
    	echo "<br>";
    	Calculate("Number_2");
    ?>
    

     执行结果

    call_user_func_array()函数

    该函数需要两个参数。

    第一个参数是要调用的函数名,第二个参数是数组类型,为参数列表。

    参数列表的参数个数要和要调用的函数的参数个数相同

    <?php
    	function Speak($a,$b){
    		echo "He can speak ".$a;
    		echo "<br>";
    		echo "She can speak ".$b;
    	}
    	
    	function Speak_Test(){
    		return call_user_func_array('Speak',array('Chinese','English'));	
    	}
    	
    	Speak_Test()
    ?>
    

     执行结果

    类静态函数和对象

    该方法回调函数也需要用到call_user_func_array()函数

    <?php
    
    	class Speaking{
    		static function Speak($a,$b){
    			echo "He can speak ".$a;
    			echo "<br>";
    			echo "She can speak ".$b;
    			echo "<br>";
    		}
    	}
    	
    	class Writting{
    		function Write($a,$b){
    			echo "He can write ".$a;
    			echo "<br>";
    			echo "She can write ".$b;
    		}
    	}
    	
    	call_user_func_array(array("Speaking","Speak"),array("Chinese","English"));
    	call_user_func_array(array(new Writting(),'Write'),array("German","Portuguese"));
    ?>
    

     类中的方法为静态,回调方法为

    call_user_func_array(array("类名","类中的静态方法"))

    类中的方法不为静态,回调方法为

    call_user_func_array(array(对象引用,"对象中方法名"))

    执行结果


    ·

  • 相关阅读:
    利用Masscan批量生成随机ip地址表
    国光大力推荐(安利)Deepin15.4
    开启你的kali linux DIY之旅
    Docker入门简明教程
    Deepin Linux下的Metasploit安装及优化
    Hexo博客配置笔记
    Mac OS下开启自带的apache服务
    PentestBox简明使用教程
    Pentester中的XSS详解
    信息收集之网站镜像克隆
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8119963.html
Copyright © 2011-2022 走看看