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

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

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

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

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

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';
  }
}

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

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