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

发布于 2024-08-20 21:36:04 字数 354 浏览 2 评论 0原文

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

这两个状态常量工作正常,并且可以在类方法中作为 self::STATUS_ERRORself::STATUS_OK 进行访问。

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

解析错误:语法错误、意外的“.”、期望的“,”或“;”在/home/sub/sub/directory/script.php

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

The two status consts work fine and can be accessed within class methods as self::STATUS_ERROR and self::STATUS_OK just fine.

The issue is one of how to stop the following error being thrown when I try to define the third constant.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瞄了个咪的 2024-08-27 21:36:04

你不知道。常数是常数。你不能在其中存储任何东西。

不过,您可以使用静态属性。

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

You don't. Constants are constant. You can't store anything in them.

You can use a static property though.

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

You can't do it within the declaration, so you might prefer a static method instead.

class My_Class {
  public static function dbTable() {
    return TABLE_PREFIX . 'class_table';
  }
}
那伤。 2024-08-27 21:36:04

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

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

a const must be defined with a constant value, they can't be the result of an expression

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文