【问题标题】:PHP assigning date function and accessing class property outside the class problemsPHP分配日期函数和访问类外的类属性问题
【发布时间】:2023-03-25 20:19:01
【问题描述】:

对此我感到头疼。 我正在尝试将 date() 函数分配给 foo() 类的属性。

class Foo{
 public $dt = date("F-d-Y H:j:s");

function today(){} //just some empty method
};
$g = new Foo();
echo $g->dt;

我收到 Parse 错误:语法错误,意外 '(',期待 ',' 或 ';' //这是 date() 行

我也试过了。

class Foo{
public $dt;

function today(){
echo $this->dt = date("F-d-Y H:j:s");
}
};
$g = new Foo();
$g->today();

没有错误,一切正常。因此,在我看来,我们不能直接将 date() 分配给类属性。 请指出我正确的方向。提前致谢。

【问题讨论】:

    标签: php class properties


    【解决方案1】:

    如果你提供一个类属性的初始化,它必须是一个常量,而不是一个函数调用。如果要计算初始值,请在类构造方法中进行。

    class Foo {
        public $dt;
    
        function __construct() {
            $this->dt = date("F-d-Y H:j:s");
        }
    }
    
    $g = new Foo();
    echo $g->dt;
    

    来自 PHP documentation:

    这个声明可以包含一个初始化,但是这个初始化必须是一个常量值——也就是说,它必须能够在编译时被评估,并且不能依赖运行时信息才能被评估。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 2018-09-10
      • 1970-01-01
      • 2016-03-13
      相关资源
      最近更新 更多