Можете ли вы присвоить значения константам со знаком равенства после использования, определенного в php?

Я знаю, чтобы определить константу, вы делаете что-то вроде этого

define("CONSTANT", "Hello world.");

если я захочу изменить значение константы, мне придется снова определить()? Почему я не мог просто сделать CONSTANT = "whatever"; после того, как он уже был определен в первый раз?


person CodeCrack    schedule 19.01.2012    source источник
comment
КОНСТАНТ   -  person falinsky    schedule 19.01.2012


Ответы (2)


Весь смысл константы в том, что она постоянно и всегда одна и та же. Вы не можете изменить константу после того, как вы ее определили.

Даже использование define("CONSTANT", "Hello world."); вернет ошибку.

Я просто сделал это очень быстро, чтобы показать вам, что вы получите:

Notice: Constant CONSTANT already defined in /Users/stokholm/test.php on line 3

Call Stack:
    0.0003     629992   1. {main}() /Users/stokholm/test.php:0
    0.0171     630232   2. define() /Users/stokholm/test.php:3
person Andreas Stokholm    schedule 19.01.2012
comment
Вся моя ситуация заключается в том, что константа определена через некоторое время, которую я не могу изменить, но мне нужно изменить ее значение, к сожалению, я не могу - person CodeCrack; 19.01.2012
comment
В этом случае вы должны использовать переменную. Константы предназначены для вещей, которые не будут меняться во время выполнения. - person Andreas Stokholm; 19.01.2012

Константы, как следует из названия, не могут быть изменены после определения. Вместо этого используйте переменные.

person Tim Cooper    schedule 19.01.2012