Как я могу связать константу и переменную и сохранить ее в классе, постоянном с PHP?

class My_class
{
    const STATUS_ERROR = 0;
    const STATUS_OK = 1;
    const DB_TABLE = TABLE_PREFIX . 'class_table';
}

Два состояния consts хорошо работают и могут быть получены доступ в методах класса как self::STATUS_ERROR и self::STATUS_OK очень хорошо.

Проблема, один из как остановить следующую ошибку, будучи брошенным, когда я пытаюсь определить третью константу.

Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/sub/sub/directory/script.php

6
задан Matthew 10 February 2010 в 10:27
поделиться

2 ответа

Не нужно. Константы постоянны. Вы не можете хранить в них ничего.

Однако вы можете использовать статическое свойство.

class My_Class {
  public static $DB_TABLE;
}
My_Class::$DB_TABLE = TABLE_PREFIX . 'class_table';

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

class My_Class {
  public static function dbTable() {
    return TABLE_PREFIX . 'class_table';
  }
}
10
ответ дан 8 December 2019 в 18:35
поделиться

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

http://www.phpbuilder.com/manual/en/language.oop5.constants.php

3
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

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