Как изменить PHP-константы?

Я работаю над созданием собственной пользовательской CMS в PHP вручную, и у меня есть несколько констант, которые я определил. Есть ли простой способ изменить константы? Я думал об использовании чего-то вроде fopen() затем менял его, но я никогда не использовал функции файловой системы.

Константа – это идентификатор (имя) для простого значения. Как следует из названия, это значение не может измениться во время выполнения скрипта (кроме магических констант, которые на самом деле не являются константами). По умолчанию чувствительность к регистру. По соглашению, постоянные идентификаторы всегда имеют верхний регистр.

Имя константы следует тем же правилам, что и любая метка в PHP. Действительное имя константы начинается с буквы или подчеркивания, за которой следует любое количество букв, цифр или символов подчеркивания. В качестве регулярного выражения оно будет выражаться следующим образом: [a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *

от: http://php.net/manual/en/language.constants.php

Константы являются константами и поэтому не могут быть изменены. Если вы хотите изменить серверные константы, такие как allow_url_fopen, то есть об ответственности хозяина, спросите их. Если вы хотите изменить их в PHP, используйте переменные

ОБНОВИТЬ

Если истина – это то, что говорит Корбин, и вы хотите изменить их при установке, вы хотели бы сделать следующее: 0. Измените значения константы на sg. как %%constant1 . 1. прочитайте код в переменной. 2. Пусть пользователь задает переменные. 3. Используйте str_replace для всех из них, например str_replace ("%% constant1", $ _ POST ["value1"], $ configfile). 4. Поместите $ configfile в качестве содержимого файла.

ОБНОВЛЕНИЕ 2

Для вашей собственной CMS я предлагаю следующее: хранить все константы в одном файле, поэтому вам нужно будет отредактировать только один файл. И, возможно, предыдущее решение могло бы работать для более легкого редактирования, но IDK, если оно того стоит.

Нет. Они – константы , как в « постоянном – постоянном или неизменном» (Викисловарь). Как только они будут определены, их невозможно изменить. Чтобы процитировать The Fine Manual , раздел Constants:

Значение [константа] не может меняться во время выполнения скрипта.

Нет. Вы не можете изменять константы

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

Насколько мне известно, после набора константу нельзя изменить.

Константы означают, что значение постоянное, поэтому вы не можете изменять константы. Если вы измените константы, вам нужно будет использовать переменные в состоянии констант:

 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 

Я думаю, что он имеет в виду сценарий установки, где он хочет сохранить входную переменную в файл конфигурации, который будет использоваться в его CMS, как только установка будет завершена. В этом случае hes не меняет константу во время выполнения.

Вероятно, у пользователя появился такой файл:

 define(DB, ''); define(USER, ''); define(PASS, ''); define(HOST, ''); 

И он хочет создать сценарий, который заполняет эти константы данными, чтобы он мог использоваться в CMS.