今日、次のコードでそのような問題に遭遇しました:
classA.php
リーリー
クラスB.php
リーリーClassB のすべてのメソッドを見つける必要がある場合、結果は次のようになります:
リーリー実際には、ClassA のメソッドを継承したくないのですが、ClassB のメソッドだけを継承したいのですが、どうすればよいでしょうか。以下のように少し変更しました:
リーリー結果は以下の通りです:
リーリーfuncAa というメソッドが 1 つありません。 funcAa は ClassA から ClassB に継承されていますが、ClassB にもこのメソッドがあるため、私が望む結果ではありません。
解決策:
リーリー結果:
リーリー[4]と[5]のクラスの対応する値がClassAで、その他の対応する値がClassBであることがわかります。これにより、foreach を使用して最終的に望ましい結果を達成できます:
リーリー最終結果:
リーリー完全、ReflectionClass の詳細については、マニュアルを参照してください
User クラスのクラス定義ファイルを必ず導入する必要があります。そうしないと、逆シリアル化は成功しません。
逆シリアル化が失敗した場合、$user は User オブジェクトのインスタンスではなくなり、メソッド getModelName は存在しなくなります。