【发布时间】:2012-07-17 18:15:30
【问题描述】:
如何在函数调用中将对象作为参数发送?我不想在传递对象时实例化它,所以myFunction( new myObject() ) 不起作用。
我希望myFunction 以后能够实例化该对象。我只是不确定如何以这种方式传递课程。
【问题讨论】:
如何在函数调用中将对象作为参数发送?我不想在传递对象时实例化它,所以myFunction( new myObject() ) 不起作用。
我希望myFunction 以后能够实例化该对象。我只是不确定如何以这种方式传递课程。
【问题讨论】:
将类名作为字符串传递,并实例化它。
https://stackoverflow.com/a/4578343/362536
function ($className) {
$object = new $className();
}
【讨论】:
你可以传递一个字符串然后做:
myFunction($class) {
$object = new $class();
}
但更好的 OOP 方法是传递一个工厂对象并让工厂创建该对象:
class MyFactory {
public function create() {
return new myObject;
}
}
myFunction(MyFactory $factory) {
$object = $factory->create();
}
【讨论】: