1

为什么以下在 PHP 中不起作用?

常量天数 = 60*24*3;

我收到以下错误。

解析错误:语法错误,第 1 行出现意外的 T_CONST

我也无法将表达式分配给属性数组的值。请注意,我只使用常量值(不调用函数或类似的东西)。

class A
{
    public $value = array('days'=>60*24*3);
}

以上不起作用。

$value = array('days'=>60*24*3);

但是,如果它被分配给一个局部变量,那就很好了!

赋值时如何使用数学表达式?

4

2 回答 2

1

常量是使用define()函数定义的。const是类内部的保留字(在 PHP 5.3 之前不能在类范围之外使用)。所以:

define('DAYS', 60*24*3);

会正常工作。

于 2013-02-12T05:59:02.023 回答
0

虽然定义一个常量可以正常工作,但它会改变全局范围。一种更封装的方法是在构造函数中设置属性:

<?php

class Foo {

    private $duration;

    public function __construct()
    {
        $this->duration = 60 * 60 * 24 * 3;
    }
}
于 2015-03-14T23:03:02.203 回答