zoukankan      html  css  js  c++  java
  • __call PHP伪重载方法

    为了避免当调用的方法不存在时产生错误,可以使用 __call() 方法来避免。该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去

    该方法有两个参数,第一个参数 $function_name 会自动接收不存在的方法名,第二个 $args 则以数组的方式接收不存在方法的多个参数

    function __call($func_name, $args)
    {
        echo "你所调用的函数:$func_name(参数:<br />";
        var_dump($args);
        echo ")不存在!";
    }
    

      

    可利用该函数实现伪重载

    <?php
    class a
    {
    
    	function __call($name,$args)
    	{
    		if($name=="f")
    		{
    			switch(count($args))
    			{
    				case 0:$this->f0();break;//$this指当前类
    				case 1:$this->f1($args[0]);break;
    				case 2:$this->f2($args[0],$args[1]);break;
    				default:$this->err();break;
    			}
    		}
    	}
    
    	function f0(){
    		echo "it's f0";
    
    	}
    	function f1($p1){
    		echo "it's f1";
    		echo $p1;
    	}
    	function f2($p1,$p2){
    		echo "it's f2";
    		echo $p1;
    	}
    	function err()
    	{
    		echo "函数不存在";
    	}
    }
    $a=new a();
    $a->f(true,1);
    

      

  • 相关阅读:
    你好,明天
    一句话实现星级评价
    react路由
    react插件包
    react 组件列表
    css小demo
    react的项目坑
    配置react-sass
    node-sass下载失败 关于webpack
    react render
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7403195.html
Copyright © 2011-2022 走看看