php重新定义函数,就像在java中一样

Max*_*tar 2 php java overloading redeclare

可能重复:
php函数重载

我想重新声明这样的功能:

class Name{
    function a(){ something; }
    function a($param1){ something; }
}
Run Code Online (Sandbox Code Playgroud)

但它回来了

Fatal error: Cannot redeclare Name::a()
Run Code Online (Sandbox Code Playgroud)

在java中它只是工作.我怎么能用PHP做到这一点?

Joh*_*nde 6

使用默认参数:

class Name{
    function a($param1=null){ something; }
}
Run Code Online (Sandbox Code Playgroud)

如果没有传递参数Name::a(),则会指定$ param1的值为null.所以基本上传递该参数变成可选的.如果您需要知道它是否有值,您可以进行简单的检查:

if (!is_null($param1))
{
 //do something
}
Run Code Online (Sandbox Code Playgroud)