Ultimamente ho intensificato il mio gioco PHP. Venendo da JavaScript, ho trovato che il modello a oggetti è un po 'più semplice da capire.Accesso alla proprietà PHP e simbolo del dollaro
Ho incontrato alcune stranezze che volevo chiarire su ciò che non riesco a trovare nella documentazione.
Quando si definiscono le classi in PHP, è possibile definire le proprietà in questo modo:
class myClass {
public $myProp = "myProp";
static $anotherProp = "anotherProp";
}
Con la variabile pubblica di $myProp
possiamo accedervi utilizzando (supponendo myClass
viene fatto riferimento in una variabile chiamata $myClass
) $myClass->myProp
senza l'uso del simbolo del dollaro.
È possibile accedere solo alle variabili statiche utilizzando ::
. Quindi, possiamo accedere alla variabile statica come $myClass::$anotherProp
con un segno di dollaro.
La domanda è, perché dobbiamo usare il simbolo del dollaro con ::
e non ->
??
EDIT
Questo è il codice Vorrei assumere avrebbe funzionato (e lo fa):
class SethensClass {
static public $SethensProp = "This is my prop!";
}
$myClass = new SethensClass;
echo $myClass::$SethensProp;
Interessante ... One up e una richiesta di chiusura. – Sethen
Ci scusiamo per aver commentato qui [la tua altra domanda] (http://stackoverflow.com/q/17681253/20578) (che, se posta come una serie di singole domande, personalmente ho pensato che sarebbe andata bene - vedi ad esempio http: //stackoverflow.com/questions/15270843/what-does-plus-operator-mean-in-underscore-js), ma dire qualcosa come "la migliore pratica dice di farlo" è un po 'priva di significato. Se non riesci a spiegare * perché * pensi che qualcosa sia una "migliore pratica", allora come fai a sapere che è "il migliore"? Le cose diverse sono le migliori in diverse situazioni. –
@ PaulD.Waite Va bene. Mentre uno sviluppatore cercava di andare avanti con il suo sviluppo, chiedevo se una determinata biblioteca seguisse le migliori pratiche per aiutarli ad apprendere è accettabile nella mia mente. Per la comunità in generale non supportare è molto frustrante. Non credo che quella particolare libreria sia stata scritta usando le migliori pratiche e sto cercando di assicurarmi che sia qualcosa che non sto sbagliando, quindi quando contribuisco al codice posso essere sicuro che sia il migliore possibile. – Sethen