@m4son

Как в константу класса PHP вставить даты?

Осваиваю ООП. Подскажите, нужно файл логов помещать в папки по датам. Как в константу класса вставить даты?
Я и через функцию, и через конструктор пробовал. Никак не получается. Вот последний мой вариант
public static function getDate($k) {
    switch ($k) {
      case "Y":
        return date("Y");
        break;
      case "m":
        return date("m");
        break;
      case "d":
        return date("d");
        break;
      case "H-i-s":
        return date("H-i-s");
        break;
    }
  }

const LOG_FILENAME = "{$_SERVER["DOCUMENT_ROOT"]}/logs/" .  self::getDate("Y") . "/" . self::getDate("m") . "/" . self::getDate("d") . ".txt";
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
ddv88
@ddv88
Binance Futures
Это не ООП.
Константа потому так и называется, что она константа. Смекаешь?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Newto
@Newto
В вашем случае это было бы как-то так:
class Someclass
{
	public static function getDate($k) 
	{
		switch ($k) {
		  case "Y":
			return date("Y");
			break;
		  case "m":
			return date("m");
			break;
		  case "d":
			return date("d");
			break;
		  case "H-i-s":
			return date("H-i-s");
			break;
		}
	}
}

define('LOG_FILENAME',  "{$_SERVER["DOCUMENT_ROOT"]}/logs/" .  Someclass::getDate("Y") . "/" . Someclass::getDate("m") . "/" . Someclass::getDate("d") . ".txt");


НО так делать не надо. Не записывайте в константы данные из функций и любые другие как-то там генерирующиеся. Константы на то и константы, что бы всегда иметь одно и то же значение. Проще говоря записывайте в константы то, что на вашем сайте никогда не меняется и выглядит для всех одинаково, независимо от пользователя, базы данных, погоды за окном и так далее.
Ответ написан
@Siverius
А откуда берётся эта $k?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы