2011-08-22 22 views

risposta

8

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

+0

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. –

+0

Inoltre va contro l'idea delle costanti in generale, tuttavia in PHP è possibile definire() una costante dinamicamente. –

+0

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. –

3

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ì.

Problemi correlati