فصول PHP تمتد
-
01-10-2019 - |
سؤال
لدي فصلين يعملان على الانفصال عن الآخر ، لكنهما يمتدان نفس الفصل. هل من الممكن جعلهم يعملون نفس مثيل الفئة الممتدة. أرغب في تشغيل مُنشئ الفئة الممتدة مرة واحدة فقط.
أعلم أن هذا ليس صحيحًا ولكن شيئًا كهذا:
<?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
, ، وإلا فإنهم ربما لن يعملوا بشكل صحيح.
لا تنتمي إلى StackOverflow