関数呼び出しでオブジェクトをパラメーターとして送信する方法は? オブジェクトを渡すときにオブジェクトをインスタンス化したくないので、うまくいきません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();
}