これはPHPに関する基本的な質問ですが、何らかの理由でそれに関する情報が見つかりませんでした。親クラスをパラメータとして関数に渡す
私がしようとしているのは、すべての子クラスも渡すことができるように親クラスを関数に渡すことです。
どうすればいいですか?
function transform(Fruit $fruit){}
transform($orange)
transform($apple)
更新:
私はより多くの状況を表示する必要があるように見えます。
それでは、私が持っていることは、トランス親
class ResourceTransformer{
public function transform(ResourceModel $model){}
}
とその子
class ColorTransformer extends ResourceTransformer{}
ある今、私が何をしたいのかColorTransformerにカラーモデル、ResourceModelの子を渡しています。
私はそれがこのようなエラーがスローされますことをやっているclass ColorModel extends ResourceModel{}
:
Type error: Argument 1 passed to App\\Modules\\Product\\Transformer\\ResourcesTransformer::transform() must be an instance of App\\Modules\\Product\\Models\\ResourceModel, instance of App\\Modules\\Product\\Models\\ColorModel given.
だから、基本的に、ColorTransformerはカラーモデルを受け入れるだけResourceModelを受け入れ、まだカラーモデルはResourceModelの子であることはできません。あなたの中にはもっと悟りを与えることができるかもしれない。
クラス名を関数に渡す – splash58
あなたの例でこれを実行しましたか?あなたの例の問題は何ですか? – dbf
今は、子インスタンスを投げることしかできません。 –