c'è un modo per impostare una variabile di classe da applicare a tutte le istanze di quella classe in php?
Domanda
Probabilmente sto facendo la domanda male, quindi ho intenzione di dare un esempio. Ho una classe che è qualcosa di simile a questo:
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 );
}
Il mio problema è quando si utilizza questo oggetto, il modello dovrebbe essere sempre lo stesso, e il record è quello che cambia per ogni istanza dell'oggetto. C'è un modo per avere il valore per $ template riporto per ogni nuova istanza? Qualcosa di simile
$a = new myclass(1,500);
$b = new myClass(2);
Dove b ha il valore per $this->template
che è stato già generato durante la creazione di un $. Forse sto avvicinando questo dal punto di vista sbagliato tutto. Eventuali suggerimenti apprezzato.
Soluzione
Sì. Dichiarare lo statico renderà una proprietà di classe
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;
Nota: Ho usato $ ae $ b per accedere alla proprietà statica per illustrare il punto che la proprietà vale per entrambe le istanze simultaenously. Inoltre, così facendo lavorare da 5.3 a solo. Prima di questo, dovreste fare contatore :: $ totale.