هل هناك طريقة لتعيين متغير فئة لتطبيقه على جميع مثيلات تلك الفئة في PHP؟

StackOverflow https://stackoverflow.com/questions/2379832

  •  24-09-2019
  •  | 
  •  

سؤال

ربما أطرح السؤال بشكل سيء ، لذلك سأقدم مثالاً. لدي فصل يشبه هذا:

class myclass {
   var $template = array();
   var $record = array();

function __construct($template,$record) {
   $this->template = ( set = to a database response here );
   $this->record   = ( set = to a database response here );
}

مشكلتي هي عند استخدام هذا الكائن ، يجب أن يكون القالب دائمًا هو نفسه ، والسجل هو ما التغييرات في كل مثيل للكائن. هل هناك طريقة للحصول على قيمة لقالب $ تنقل إلى كل مثيل جديد؟ شيء مثل

$a = new myclass(1,500);
$b = new myClass(2);

حيث B له قيمة $this->template تم إنشاء ذلك بالفعل عند إنشاء $ a. ربما أقترب من هذا من الزاوية الخاطئة تمامًا. أي اقتراحات موضع تقدير.

هل كانت مفيدة؟

المحلول

نعم. أعلن أنه ثابت سيجعلها خاصية الفصل

class Counter {
    public static $total = 0;
    public function increment()
    {
         self::$total++;
    }
}
echo Counter::$total; // 0;
$a = new Counter;
$a->increment();
echo $a::$total; // 1;
$b = new Counter;
echo $b::$total; // 1;

ملاحظة: لقد استخدمت $ a و $ b للوصول إلى الخاصية الثابتة لتوضيح النقطة التي تنطبق عليها العقار على كلتا الحالتين بشكل محظور. أيضا ، سوف يعمل ذلك من 5.3 على فقط. قبل ذلك ، يجب عليك القيام بالعداد :: $.

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