如何连接常量和变量并使用PHP将其存储在类常量中?

时间:2010-02-10 10:27:30

标签: php class oop const constants

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

两个状态consts工作正常,可以在类方法中访问self::STATUS_ERRORself::STATUS_OK就好了。

当我尝试定义第三个常量时,问题是如何停止抛出以下错误。

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

2 个答案:

答案 0 :(得分:10)

你没有。常数是不变的。你不能在里面存放任何东西。

您可以使用静态属性。

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

答案 1 :(得分:3)

const必须用常量值定义,它们不能是表达式的结果

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