我可以在PHP中重载方法吗?

ope*_*rog 3 php oop

例:

我想有两个不同的构造函数,我不想使用func_get_arg(),因为它是不可见的args是可能的.

写下两个是合法的,比如:

class MyClass {
    public function __construct() {
    // do something
    }
    public function __construct(array $arg) {
    // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

Tat*_*nen 10

不,但你可以这样做:

class MyClass {
    public function __construct($arg = null) {
        if(is_array($arg)) {
            // do something with the array
        } else {
            // do something else
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在PHP中,函数可以接收任意数量的参数,如果为它们提供默认值,则不必定义它们.这就是你如何"伪造"函数重载并允许访问具有不同参数的函数.