如何在PHP中将常量和变量连接起来并存储在类常量中?

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

这两个状态常量可以在类方法中使用self::STATUS_ERRORself::STATUS_OK

问题在于如何避免定义第三个常量时出现以下错误:

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


我也遇到了同样的问题。看起来对我来说是一个限制。在这里也提到了:http://bugs.php.net/bug.php?id=42355 - dma_k
1
以上的错误已被转化为RFC,并获得批准,包含在v 5.6中,现在可以使用此功能:https://wiki.php.net/rfc/const_scalar_exprs。 - underscore_d
2个回答

11
你无法将任何东西存储在常量中,因为常量是不可变的。不过,你可以使用静态属性。
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';
  }
}

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接