سؤال

لدي فصلين يعملان على الانفصال عن الآخر ، لكنهما يمتدان نفس الفصل. هل من الممكن جعلهم يعملون نفس مثيل الفئة الممتدة. أرغب في تشغيل مُنشئ الفئة الممتدة مرة واحدة فقط.

أعلم أن هذا ليس صحيحًا ولكن شيئًا كهذا:

<?php
$oApp = new app;
class a extends $oApp {}
class b extends $oApp {}
هل كانت مفيدة؟

المحلول

آه ، في هذه الحالة ، أعتقد أنك تريد تمرير الفصل كمعلمة للفئتين الأخريين:

/**
 * 
 */
class abParent{
    /**
     * @var app
     */
    protected $app;
    /**
     *
     * @param app $app
     */
    public function __construct(app &$app){
        $this->app = &$app;
    }
}

class a extends abParent{}
class b extends abParent{}


$app = new app();
$a = new a($app);
$b = new b($app);

var_dump($a, $b);

نصائح أخرى

ما تريده هو:

<?php
$oApp = new app;
class a extends app{}
class b extends app{}

اذا كنت تمتلك __constructorفي فصول الطفل ، تأكد من الاتصال parent::__constructor, ، وإلا فإنهم ربما لن يعملوا بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top