如何在PHP中重载方法?

时间:2014-05-13 03:18:10

标签: php overloading

我是PHP的新手,我想和PHP中的跟随java源代码一样。任何人都可以帮助我吗?

someMethod(int i) {
System.out.println("message");
// more code
}
someMethod(String s) {
System.out.println("another message");
// more different code
}

2 个答案:

答案 0 :(得分:3)

您不能重载PHP函数,因为它们的签名只包含其名称而不包括其参数列表:https://stackoverflow.com/a/4697712/386869

您可以为您要执行的操作执行两个单独的功能(我建议),也可以编写一个功能并为每种类型执行不同的操作。

写两种方法很简单:

function myFunctionForInt($param)
{
    //do stuff with int
}
function myFunctionForString($param)
{
    //do stuff with string
}

如果你想用一个功能代替它并检查类型(不是真的推荐):

function myFunction($param)
{
    if(gettype($param) == "integer")
    {
        //do something with integer
    }
    if(gettype($param) == "string")
    {
        //do something with string
    }
}

Docs for gettype()

我不知道这是最好的方式。此外,对于您的特定示例,Imat的示例最有意义,因为您只是打印一条消息。

答案 1 :(得分:1)

好的,所以你想创建一个打印信息的功能。

function my_function_name()
{
   echo "your message here;
}

如果你想要一个带参数的函数,你可以这样做。

function my_function_name($params)
{
    echo "your message here";
    echo $params; //call the paramereters
}