将对象实例化为参数是不好的做法吗?例如,这样做是不好的做法?
myFunction(new Foo);
或者你应该这样做:
$foo = new Foo;
myFunction($foo);
我的具体情景..
我问,因为我需要将许多新对象传递给一个方法来“注册”一堆插件.这有点像这样:
$imagePlugin = new ImagePlugin;
$videoPlugin = new VideoPlugin;
$audioPlugin = new AudioPlugin;
$myLibrary->registerPlugins(array(
$imagePlugin,
$videoPlugin,
$audioPlugin
));
根据最佳实践,我想知道它是否可以将其缩短为以下代码:
$myLibrary->registerPlugins(array(
new ImagePlugin,
new VideoPlugin,
new AudioPlugin
));
最佳答案 如果你在函数调用之外不需要它们,我会说你正确地将它们直接作为参数实例化.