魔术功能 __call 功能不起作用
magic function __call function is not working
我正在尝试使用魔法函数进行重载
这是我的代码:
class 文件 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);
我的是我丢失的东西,无法找到它到底是什么
另外我想问的是私有函数是否也包含在重载中。
同一方法中不能有多个定义class。
这是错误的,无论您为这些方法设置何种可见性 (public/private),都不会起作用:
public function UserLogin($data0='')
{
echo $data0;
}
public function UserLogin($data0='',$data2='')
{
echo $pass
}
此外,魔术方法__call()
只对未定义的方法有效,或者对当前范围内不可见的方法有效。
所以你要么删除两个 function UserLogin
,要么你只删除其中一个而另一个 private
.
来点 docs。
我正在尝试使用魔法函数进行重载
这是我的代码:
class 文件 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);
我的是我丢失的东西,无法找到它到底是什么
另外我想问的是私有函数是否也包含在重载中。
同一方法中不能有多个定义class。
这是错误的,无论您为这些方法设置何种可见性 (public/private),都不会起作用:
public function UserLogin($data0='')
{
echo $data0;
}
public function UserLogin($data0='',$data2='')
{
echo $pass
}
此外,魔术方法__call()
只对未定义的方法有效,或者对当前范围内不可见的方法有效。
所以你要么删除两个 function UserLogin
,要么你只删除其中一个而另一个 private
.
来点 docs。