Estoy trabajando en hacer mi propio CMS personalizado en PHP a mano y tengo algunas constantes que he definido. ¿Hay alguna manera fácil de modificar las constantes? Estaba pensando en usar algo como fopen()
y luego cambiarlo, pero nunca he usado las funciones del sistema de archivos.¿Cómo cambiar las constantes de PHP?
Respuesta
Una constante es un identificador (nombre) para un valor simple. Como indica el nombre , ese valor no puede cambiar durante la ejecución del script (excepto las constantes mágicas, que en realidad no son constantes). Una constante distingue entre mayúsculas y minúsculas por defecto. Por convención, los identificadores constantes siempre son mayúsculas.
El nombre de una constante sigue las mismas reglas que cualquier etiqueta en PHP. Un nombre de constante válida comienza con una letra o guión bajo, seguido de cualquier cantidad de letras, números o guiones bajos. Como expresión regular, que se expresaría así: [a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *
no puedo decir mejor que la página php.net! – Tech4Wilco
Por lo que sé, una vez configurada, una constante no se puede cambiar.
No. Son constantes, como en "constant - lo que es permanente o invariable" (Wiktionary). Una vez que están definidos, no hay forma de cambiarlos. Para citar The Fine Manual, sección Constantes:
[el valor de una constante] no puede cambiar durante la ejecución del script.
Lamento haber sido incorrecto ... para mí las constantes son solo un valor que puede usarse a lo largo de un todo el sitio sin tener que seguir definiéndolos. Debería haber sido más claro en lo que estaba tratando de lograr. Estoy creando mi propio CMS para mi propio uso y me preguntaba cómo podría crear una forma de cambiar variables o lo que sea un buen término para ellas sin editar manualmente el archivo/archivos que las contienen. Lo siento. – legobear154
No hay necesidad de disculparse por ser incorrecto, le sucede a todos :) – Piskvor
Ok. ¿Cuál sería la mejor forma de crear un archivo de configuración? Voy a agregar un panel de administración a mi CMS y quiero que las variables sean editables desde allí. – legobear154
Las constantes son constantes y, por lo tanto, no pueden modificarse. Si desea cambiar las constantes del servidor como allow_url_fopen, esa es la responsabilidad del host, pregúnteles. Si desea cambiarlos en PHP, utilizar variables
ACTUALIZACIÓN
En caso de que la verdad es lo que dice Corbin y desea modificar de la instalación, que se quiere hacer lo siguiente: 0. Cambia los valores constantes a sg. como %%constant1
. 1. lee el código en una variable. 2. Permita que el usuario establezca las variables. 3. Utilice str_replace en todos ellos como str_replace ("%% constant1", $ _ POST ["value1"], $ configfile). 4. Coloque $ configfile como contenido de un archivo.
ACTUALIZACIÓN 2
Para su propio CMS solamente, me sugieren lo siguiente: tienda todas las constantes en un archivo, por lo que tendrá que editar un único archivo. Y tal vez la solución anterior podría funcionar para una edición más fácil, pero IDK si vale la pena el tiempo.
No. no puede modificar las constantes
constantes significa que el valor es constante, por lo que no puede cambiar las constantes.Si va a cambiar las constantes es necesario utilizar las variables de estado de constantes:
define('ROOT', '/some/path');
echo ROOT; // echo's /some/path
define('ROOT', '/some/other/path'); // gives an error
echo ROOT; // gives /some/path (if there were no error
$root = '/some/path';
echo $root; // echo's /some/path
$root = '/some/other/path';
echo $root; // echo's /some/other/path
Creo que quiere decir en el caso de un script de instalación, en la que desea almacenar una variable de entrada a un archivo de configuración, para ser utilizado en su CMS, una vez que se completa la instalación. En ese caso hes no cambia la constante en tiempo de ejecución.
hes probablemente tiene un archivo de la siguiente manera:
define(DB, '');
define(USER, '');
define(PASS, '');
define(HOST, '');
y quiere crear un script que pueblan estas constantes con los datos para que pueda ser utilizado en el CMS.
in PHP, but only if you have the runkit extension installed.
However, I must question why you're even defining a constant if you need to change it. It would no longer be a constant once changed and it's appropriate to use constants in your context if it needs to be changed. You may want to consider making it a global variable if it needs to be accessible in other functions or parts of your code, or write proper code by:
Passing the data as parameters to a function, then returning the manipulated values (if coding in a procedural fashion).
Set the value in a class' property, then access the value using $this within your class (if coding in an OO fashion).
- 1. ¿Cómo examino las constantes definidas en PHP?
- 2. ¿Por qué puedo cambiar las constantes?
- 3. ¿Es posible redefinir las constantes de PHP?
- 4. ¿Son posibles las constantes privadas en PHP?
- 5. Constantes dinámicas en PHP?
- 6. Redefinición de constantes en PHP
- 7. Constantes de autocarga en PHP?
- 8. Cómo definir adecuadamente las constantes
- 9. Las ventajas de las constantes
- 10. Acceso PHP Clase Constantes
- 11. PHP indefinido pruebas constantes
- 12. El uso de constantes PHP DOP en las llamadas
- 13. ¿Cuándo y cómo usar constantes en PHP?
- 14. ¿Cómo manejar las comillas simples en las constantes de internacionalización?
- 15. PHP/JavaScript para cambiar dinámicamente las rutas de las imágenes
- 16. Constantes de PHP con ámbito local
- 17. constantes PHP en un archivo JavaScript
- 18. Documentación de las constantes de clase phpDoc
- 19. OR bit a bit de las constantes
- 20. Scala: compila las constantes de tiempo
- 21. PHP cambiar el nombre de las teclas de una matriz
- 22. cómo agrupar las constantes de API de Windows
- 23. Delphi: ¿Todas las constantes son constantes, pero algunas son más constantes que otras?
- 24. PHP -cuál es la diferencia entre las variables globales y las constantes
- 25. ¿Se pueden usar constantes estáticas en PHP?
- 26. Representación de las constantes binarias C#
- 27. C# - ¿son todas las constantes de Enum?
- 28. mejores prácticas de C++ para las constantes
- 29. ¿Dónde declarar las constantes de clase?
- 30. ¿Cuál es la forma correcta de documentar las constantes de PHP (definir) con phpDocumentor
Es posible que desee volver a consultar la definición del diccionario de "constante". – BoltClock
constantes y fopen? –
¿Por qué necesita cambiar sus constantes? Si no son constantes a través de su código, use las variables – Tom