Результат при использовании time() в константе

Вопрос такой, при использовании функции time() (возвращает unix время) внутри константы какой будет результат? Ну тоесть вернётся текущее время на момент вызова константы, или то время, которое было при её инициализации в define()?

define('TIMENOW', time());

// Спустя много строк кода...

echo TIMENOW;

Ответы (1 шт):

Автор решения: belomaxorka

В отличие от сказок про Гарри Поттера и Золотую Рыбку, в программировании отсутствует такое понятие как магия. Все происходит очень скучно и материально. В частности, в программировании нет такого понятия, как "время". Если догадаться посмотреть описание функции time() в документации, то окажется, что она возвращает не какое-то "время", а всего лишь число. Цифры. И вот эти-то цифры и присваиваются константе. Если функция на момент вызова вернула значение 1701758466, то константа получает значение 1701758466. И возвращает значение 1701758466.

Вот пример:

define('TIMENOW', time()); // 1701758466

var_dump(time()); // 1701758466
var_dump(TIMENOW); // 1701758466

sleep(3); // задержка 3 секунды

var_dump(time()); // 1701758469 (тут мы видим что прошло 3 секунды)
var_dump(TIMENOW); // 1701758466 (тут видно что значение константы сохранилось)
→ Ссылка