gibt es eine Möglichkeit, eine Klassenvariable auf alle Instanzen dieser Klasse in PHP zu bewerben?

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

  •  24-09-2019
  •  | 
  •  

Frage

Ich frage wohl die Frage schlecht, so dass ich ein Beispiel geben werde. Ich habe eine Klasse, die etwas Ähnliches wie das ist:

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

Mein Problem ist, wenn dieses Objekt verwenden, müssen die Vorlage sollte immer das gleiche, und der Datensatz ist, was für jede Instanz des Objekts ändert. Gibt es eine Möglichkeit, den Wert für $ template Übertrag auf jede neue Instanz haben? So etwas wie

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

Wenn b den Wert für $this->template hat, die bereits erzeugt wurde, als ein $ zu schaffen. Ich nähere dies aus dem falschen Winkel vielleicht ganz. Irgendwelche Vorschläge geschätzt.

War es hilfreich?

Lösung

Ja. Deklarieren sie statisch es eine Klasse Eigenschaft machen

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;

Hinweis: Früher habe ich a und $ b auf Zugang $ die statische Eigenschaft, den Punkt zu veranschaulichen, dass die Eigenschaft zu beiden Fällen gilt gleichzeitig treffen. Außerdem wird von 5,3 damit arbeiten nur. Vor diesem, dann würden Sie Zähler tun :: $ total.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top