在PHP中将对象作为参数发送,而不进行实例化

时间:2012-07-17 18:15:30

标签: php class object

如何在函数调用中将对象作为参数发送?我不希望在传递对象时对其进行实例化,因此myFunction( new myObject() )将不起作用。

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

2 个答案:

答案 0 :(得分:3)

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

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

function ($className) {
    $object = new $className();
}

答案 1 :(得分:2)

你可以传递一个字符串并执行:

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

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

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

myFunction(MyFactory $factory) {
    $object = $factory->create();
}