2016-09-09 8 views
-1

プロジェクトの場合、私はclass Memberclass Certificateです。PHP - 2ウェイは2つのクラスをバインドしますか?

メンバーに証明書があるかどうか。証明書はメンバーにバインドされている必要があります。

無制限のループを行わずに、$member->certificate、および$certificate->member経由でメンバーに証明書にアクセスする方法はありますか?

+0

合法的な質問、ダウン有権者は... – dbf

+0

nut5に蹴られるべきコメントではありません1つの方法は、コンストラクタでそれらを必要としません。それらのためにセッターを使用してください。プロパティとしてgetterを使用します。プロパティとして何を行う場合は、それらを非公開にして 'magic' __get($ name)を使用します。デモンストレーション:https://eval.in/639631 –

+0

ニース、ありがとう!これを見てください – Treast

答えて

0

メンバーは証明書なしで存在できるため、コンストラクターにはデフォルトの証明書がnullになります。 の証明書にはのメンバーがいなければならないので、このメンバーに建設中に渡すよう指示します。ところで


class Member 
{ 
    public $certificate; 

    public function __construct(Certificate $certificate = null) 
    { 
     $this->certificate = $certificate; 
    } 
} 

class Certificate 
{ 
    public $member; 

    public function __construct(Member $member) 
    { 
     $this->member = $member; 
     $member->certificate = $this; 
    } 
} 


$member1 = new Member(); 
$certificate1 = new Certificate($member1); 
は、その無限ループ事は冗談か何かあったんだろう...

+0

あなたのコードで、証明書を持つMemberのインスタンスが必要な場合は、その証明書をインスタンス化する必要があります。これにはMemberなどが必要です。 – Treast

+0

ああ神様...いいえ、単に、いいえ。 – theomessin

関連する問題