1

如何在函数调用中将对象作为参数发送?我不想在传递对象时实例化它,所以myFunction( new myObject() )不会工作。

我希望myFunction以后能够实例化该对象。我只是不确定如何以这种方式传递课程。

4

2 回答 2

3

将类名作为字符串传递,并实例化它。

https://stackoverflow.com/a/4578343/362536

function ($className) {
    $object = new $className();
}
于 2012-07-17T18:17:54.830 回答
2

您可以传递一个字符串并执行以下操作:

myFunction($class) {
    $object = new $class();
}

但更好的 OOP 方法是传递一个工厂对象并让工厂创建对象:

class MyFactory {
    public function create() { 
        return new myObject; 
    }
}

myFunction(MyFactory $factory) {
    $object = $factory->create();
}
于 2012-07-17T18:20:08.097 回答