我可以拥有这样的功能:
public function user_to(String $user = null){
$this->user = $user;
return $this;
}
另一个像这样
public function user_to(Array $user = null){
$this->user = $user;
return $this;
}
没有任何问题?我的意思是,我希望第一个只在参数是一个字符串时被调用,而第二个在它是一个数组时被调用。
我知道我只能使用一个函数执行它并执行gettype()
来知道它是一个数组还是一个字符串但我想要有不同的函数
答案 0 :(得分:3)
PHP不允许具有相同名称的多个函数。所以你不应该定义一个具有相同名称但不同变量类型的单独函数,而是可以在函数内部检查它。
public function user_to($user = null){
if (is_array($user) || is_string($user)) {
$this->user = $user;
return $this;
} else {
/* Do whatever; for example throw an exception or return false */
}
}
尝试重新声明PHP中已存在的函数会产生致命错误。从手册中,
PHP不支持函数重载,也不可能取消定义或重新定义以前声明的函数。