Есть ли способ установить переменную класса для применения ко всем экземплярам этого класса в PHP? - PullRequest
2 голосов
/ 04 марта 2010

Я, наверное, плохо задаю вопрос, поэтому приведу пример.У меня есть класс, похожий на этот:

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 );
}

Моя проблема в том, что при использовании этого объекта шаблон всегда должен быть одинаковым, а запись - это то, что изменяется для каждого экземпляра объекта.Есть ли способ перенести значение $ template на каждый новый экземпляр?Что-то вроде

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

, где b имеет значение для $this->template, которое уже было сгенерировано при создании $ a.Возможно я подхожу к этому с неправильной точки зрения полностью.Любые предложения приветствуются.

1 Ответ

3 голосов
/ 04 марта 2010

Да. Объявление статического сделает свойство класса

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. Перед этим вам нужно будет сделать Counter :: $ total.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...