هل هناك طريقة لتعيين متغير فئة لتطبيقه على جميع مثيلات تلك الفئة في PHP؟
سؤال
ربما أطرح السؤال بشكل سيء ، لذلك سأقدم مثالاً. لدي فصل يشبه هذا:
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 على فقط. قبل ذلك ، يجب عليك القيام بالعداد :: $.
لا تنتمي إلى StackOverflow