zoukankan      html  css  js  c++  java
  • php实现函数重载

    java、.net等强类型预言中都有方法重载,但是PHP是弱类型语言,不能确定参数的类型,

    而且如果php定义的方法接收一个参数,调用的时候传入多个也不会有问题,所以不能进行重载。

    但是我们可以通过php提供的魔术方法__call来模拟实现方法重载。如下代码示例:

    <?php
    
    class test{
        function __call($method,$args){
            if($method == 'method'){
                $argCount = count($args);
                $functionName = 'method'.$argCount;
                if(method_exists($this,$functionName)){
                    call_user_func_array(array($this,$functionName),$args);
                }
            }
        }
    
        function method1($a){
            echo '我是一个 参数的方法';
        }
    
        function method2($a,$b){
            echo '我是二个 参数的方法';
        }
    
        function method3($a,$b,$c){
            echo '我是三个 参数的方法';
        }
    
        function method4($a,$b,$c,$d){
            echo '我是四个 参数的方法';
        }
    }
    
    $test = new test();
    
    //输出 “我是一个 参数的方法”
    $test->method(1);
    
    //输出 “我是二个 参数的方法”
    $test->method(1,2);
    
    //输出 “我是三个 参数的方法”
    $test->method(1,2,3);
    
    //输出 “我是四个 参数的方法”
    $test->method(1,2,3,4);
  • 相关阅读:
    查看kafka版本号
    This service allows sftp connections only. 解法
    raid5和raid10的异同
    mpstat命令
    力扣 2020.06.27
    力扣 2020.06.22
    windows10 LTSC 2019 激活
    shell 不等式的表示方法
    C#后台判断一个网站的有效性代码
    C#去除DataTable中的重复数值
  • 原文地址:https://www.cnblogs.com/njr8/p/4981878.html
Copyright © 2011-2022 走看看