在像Java这样的语言中,可以通过以下方式使用重载:
void test($foo, $bar){}
int test($foo){}
然后,如果您test()使用2个参数调用,例如test($x, $y);,将调用第一个函数.如果你只传递了一个参数,例如test($x);,将调用第二个函数.
从手册看来,php 5确实有重载,但是它的用途是什么?我似乎无法理解关于这个主题的手册..
Ion*_*tan 26
PHP的重载意义与 Java不同.在PHP中,超载的意思是你能够对象成员在运行时添加,通过实施一些__magic方法,如__get,__set,__call,__callStatic.您使用新成员加载对象.
PHP中的重载提供了动态"创建"属性和方法的方法.这些动态实体通过魔术方法处理,可以在类中为各种动作类型建立.
一个例子:
class Foo
{
    public function __call($method, $args)
    {
        echo "Called method $method";
    }
}
$foo = new Foo;
$foo->bar(); // Called method bar
$foo->baz(); // Called method baz
顺便说一下,PHP支持PHP 4.3.0以来的这种重载.唯一的区别是,在PHP 5之前的版本中,您必须使用该overload()函数显式激活重载.
Gum*_*mbo 15
如果要重载像Java中的函数,请不要指定任何参数,并使用func_num_args和func_get_args函数来获取传递给该函数的参数数量或参数本身:
function test() {
    $args = func_get_args();
    switch (count($args)) {
        case 1:
            // one argument passed
            break;
        case 2:
            // two arguments passed
            break;
        default:
            // illegal numer of arguments
            break;
    }
}