c'è un modo per impostare una variabile di classe da applicare a tutte le istanze di quella classe in php?

StackOverflow https://stackoverflow.com/questions/2379832

  •  24-09-2019
  •  | 
  •  

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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top