Php 魔法函数\uuu调用函数不工作

Php 魔法函数\uuu调用函数不工作,php,overloading,Php,Overloading,我正在尝试使用magic函数重载 这是我的密码: 类文件1 class vLiteUser{ public function __call($methodname,$arguments) { if($methodname=='UserLogin'){ switch(count($arguments)){ case 1:

我正在尝试使用magic函数重载

这是我的密码:

类文件1

    class vLiteUser{
        public function __call($methodname,$arguments)
        {
            if($methodname=='UserLogin'){
                switch(count($arguments)){
                    case 1:
                                $this->UserLogin($arguments[0]);
                        break;
                    case 2:
                                $this->UserLogin($arguments[0],$arguments[1]);
                        break;
                    default:    echo "string";
                                break
                }
            }   
        }    

    public function UserLogin($data0='')
    {
        echo $data0;
    }

    public function UserLogin($data0='',$data2='')
    {   
            echo $pass
    }
} ?>
我已在另一个文件中创建对象

 $userObj = new vLiteUser();
 $userObj->UserLogin(data0,data1);
 $userObj->UserLogin(data0);
我的名字可能是我丢失的东西,但我无法找到它的确切含义


我还想问,重载中是否也包含私有函数。

同一类中的方法不能有多个定义

这是错误的,并且无论您为这些方法设置了什么可见性(公共/私有),都不会起作用:

public function UserLogin($data0='')
{
    echo $data0;
}

public function UserLogin($data0='',$data2='')
{   
    echo $pass
}
此外,magic方法
\uuu call()
仅适用于未定义的方法,或在当前范围内不可见的方法

因此,您要么同时删除
函数UserLogin
,要么只删除其中一个,将另一个
设为私有


在一个类中不能有两个同名的方法。

这不是
\u调用
函数的工作方式。它用于处理未在给定对象中定义的方法的方法调用