Vorrei definire una costante di classe utilizzando una concatenazione di una costante esistente e una stringa. Non posso predefinirlo perché solo gli scalari sono consentiti per le costanti predefinite, quindi attualmente lo ho come parte del mio costruttore con una funzione defined() che verifica se è già definita. Questa soluzione funziona ma la mia costante è ora inutilmente globale.Definizione della costante di classe in PHP
C'è un modo per definire una costante di classe in fase di esecuzione in php?
Grazie.
Prendere in considerazione l'utilizzo di una variabile statica. http://php.net/manual/en/language.oop5.static.php – Matchu
utilizza define() considerato come patch per le scimmie? c'è un motivo per cui la definizione delle costanti globali in fase di runtime è accettabile mentre la definizione delle costanti di classe non lo è? – joshs
@josh L'utilizzo di define() * come tale * non è considerato patch-patch per scimmia. Devi avere un meccanismo per definire le costanti e tecnicamente ciò accade sempre in fase di esecuzione. Tuttavia, l'idea di una tale costante è quella di fornire un valore * *, * fisso * globalmente disponibile, motivo per cui di solito dichiarate le costanti in cima al vostro script. In questo modo tardive e sulla base di alcune condizioni è quello che vorrei prendere in considerazione l'uso sbagliato, perché poi si utilizza la costante come una variabile e, in caso di o di ridefinire o cancellandoli, mi considero cattiva monkeypatching, perché cambia il comportamento interno di PHP. – Gordon