【发布时间】:2016-12-28 12:04:15
【问题描述】:
我正在尝试使用魔术函数进行重载
这是我的代码:
类文件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);
我是我错过的东西,无法找到它到底是什么
我还想问一下,私有函数是否也包含在重载中。
【问题讨论】:
-
一个类中不能有两个同名的方法。
-
这不是
__call函数的工作方式。它用于处理在给定对象中未定义的方法的方法调用。 -
在 php stackoverflow.com/questions/4697705/php-function-overloading 中检查替代函数重载
标签: php overloading