Есть ли способ установить переменную класса для применения ко всем экземплярам этого класса в 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 только. До этого вам придется сделать счетчик :: $ Total.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top