Ho due frammenti di codice (relativi alla parola chiave static
) che mi aspetto abbiano lo stesso output, ma in realtà le uscite sono diverse.proprietà statiche php
La domanda è: perché?
frammento 1
class base
{
public static $var = 1;
}
class sub extends base
{
public static $var = 2;
}
echo base::$var; // Outputs 1
frammento 2
class base2
{
public static $var2 = 1;
}
class sub2 extends base2
{
}
sub2::$var2 = 2;
echo base2::$var2; // Outputs 2
grazie per il suggerimento, appena aggiornato – nut
Ho il sospetto che si sta confondendo il risultato con 'const'. In php 'static' definisce una proprietà che è indipendente da un'istanza. Ma può ancora cambiare. – datasage
@ user1970939, cosa stai effettivamente cercando di realizzare? L'output è diverso perché hai rimosso 'public static $ var = 2;'. Ma tu lo sai. Quindi qual è la vera domanda? – Matthew