php常量数学运算

php常量数学运算,php,constants,Php,Constants,目前我正在学习php。这里我有一个困惑,这是我的php代码 class OBJECT_ENUM { const USER = 10; const POST = 30; const SECURE_REQUEST = 40; } class OPERATION_ENUM { const INSERT_USER = OBJECT_ENUM::USER + 1; // <- here it gives an error const SEND_MAIL =

目前我正在学习php。这里我有一个困惑,这是我的php代码

class OBJECT_ENUM
{
    const USER = 10;
    const POST = 30;
    const SECURE_REQUEST = 40;
}

class OPERATION_ENUM
{
    const INSERT_USER = OBJECT_ENUM::USER + 1; // <- here it gives an error
    const SEND_MAIL = OBJECT_ENUM::USER + 2;

    const LIKE_POST = OBJECT_ENUM::POST + 1;
    const INSERT_POST = OBJECT_ENUM::POST + 2;

    const ENCRYPT = OBJECT_ENUM::SECURE_REQUEST + 1;
}

error message: 
Parse error: syntax error, unexpected '+', expecting ',' or ';' in /var/www/workspace/6thAssignment/include/tempCall.php on line 15
类对象\u枚举
{
const USER=10;
const POST=30;
const SECURE_REQUEST=40;
}
类操作枚举
{

const INSERT_USER=OBJECT_ENUM::USER+1;//我认为您无法执行数学运算以分配给const变量。请尝试更改

const INSERT_USER = OBJECT_ENUM::USER + 1;


原始答案:

如您所见:

该值必须是一个常量表达式,而不是(例如)a 变量、属性、数学运算的结果或 函数调用

更新:


从PHP 5.6版的常量中。

我认为常量定义中不允许使用表达式(如$a+1),因此这就是为什么会出现此错误。

目前PHP不允许这样做。有一个RFC(征求意见)请求将此添加到语言中:


然而,由于RFC的作者已经离开了内部开发团队,这一点被撤回了。所以我怀疑这可能不会很快发生,但这并不是说这不会在以后以某种形式出现。

两个类之间的关系是什么?它们在代码中没有关系。@Hanky웃Panky:关系只是我想将OBJECT_ENUM常量的值用于操作_ENUM类没有其他关系我有一个文件'tempCall.php',两者都放在一个文件中。实现更新非常重要。可以从PHP5.6执行操作。谢谢!
$INSERT_USER = OBJECT_ENUM::USER + 1;