Posso definire una costante di classe all'interno della funzione di costruzione della classe?Come definire costante nel costruttore della classe?
(in base a determinate condizioni)
Posso definire una costante di classe all'interno della funzione di costruzione della classe?Come definire costante nel costruttore della classe?
(in base a determinate condizioni)
Ciò va contro l'idea delle costanti di classe: non dovrebbero dipendere da un'istanza specifica. Dovresti invece usare una variabile.
Tuttavia, se si insiste a farlo, sono molto avventurosi e possono installare estensioni PHP, è possibile dare un'occhiata all'estensione del runkit che consente di modificare le classi e le relative costanti in fase di esecuzione. Vedere questo documento: http://www.php.net/manual/en/function.runkit-constant-add.php
Non credo che si può.
Non avrebbe alcun senso: una costante di classe può essere utilizzata in un contesto statico, in cui non esiste un costruttore in primo luogo.
Dovrai invece utilizzare una variabile, ecco perché sono lì.
Prova un'occhiata qui:
http://php.net/manual/en/language.oop5.constants.php
http://php.net/manual/en/language.oop5.static.php
Spero che questo aiuti.
variabile statica $ pubblica – Andrew
Stavo cercando l'equivalente php di 'static final' di java che può essere impostato nel costruttore, ma sfortunatamente nelle costanti php sono un po 'diversi. –
Inoltre va contro l'idea delle costanti in generale, tuttavia in PHP è possibile definire() una costante dinamicamente. –
Ciò può essere utile quando si desidera definire costanti di stringa i cui valori sono costituiti dal valore di altre costanti (per ASCIUGARE le parti comuni). Poiché PHP non consente espressioni (come la concatenazione di due stringhe) in valori costanti, sarebbe stato utile farlo nel costruttore. –