2010-03-04 4 views
2

Я, вероятно, задаю вопрос плохо, поэтому я приведу пример. У меня есть класс, который что-то похожее на это:Есть ли способ установить переменную класса для применения ко всем экземплярам этого класса в 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); 

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

ответ

3

Да. Declaring it static сделает это свойство класса

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; 

Примечание: Я использовал $ а и $ Ь, чтобы получить доступ к статическому свойству для иллюстрации того, что свойство применяется к обоих случаях simultaenously. Кроме того, это будет работать только с 5.3. До этого вам придется делать Counter :: $ total.

+0

Возможно, вы должны упомянуть, как к нему можно обратиться;) –

+0

Oookay, но я не могу установить статическую переменную для функции, которая мне понадобится, чтобы получить информацию из базы данных. – Stomped

+0

«установить статическую переменную функции», что это значит и как на самом деле связано с базой данных? –

Смежные вопросы