親オブジェクトを子クラスとして、できれば親クラスのメソッドによって再キャストする簡単な方法はありますか?
たとえば、「Visitor」クラスと「Visitor」を拡張する「Member」クラスがあるとします。認証方法が成功すると、オブジェクトを再キャストすることは可能ですか?
ありがとう
別のオブジェクトを取り、すべてのプロパティを新しいオブジェクトにコピーVisitor
するクラスでコンストラクターを定義できます。Visitor
次に、このコンストラクターがクラスに継承され、既存のオブジェクトをコピーしMember
てオブジェクトを作成できるようになります。Member
Visitor
私が考えることができる最も近い解決策は、新しい「メンバー」オブジェクトを開始し、古い訪問者オブジェクトをコンストラクターに渡すことです。コンストラクターでは、関連する属性を引き出して、それらを新しいオブジェクトに割り当てることができます。
同様のスキーマも同様に機能しますが、何かを php のクラスとして直接キャストすることはできません :[
絶対違う!ユーザーが認証されると、リクエストは終了するため、Visitor オブジェクトは存在しなくなります。次のリクエストで、Member オブジェクトを直接ロードします (各ユーザー タイプに関連するオブジェクトをインスタンス化することを知っているある種のファクトリがあると仮定します)。