1

我真的不知道要谷歌什么,因为我在不知道行话的情况下学习了 PHP 和 OOP。

为什么这在 PHP 中不起作用?

class Calendar{
    public $derp="lala";
    public $todaysDate=date('Y-m-d',strtotime('2013-04-11'));
}

但这有吗?

class Calendar{
    public $derp="lala";
    public function __construct() 
    {
        $this->todaysDate=date('Y-m-d',strtotime('2013-04-11'));
    }
}

您不能在课程开始时声明日期吗?为什么?

4

2 回答 2

3

来自PHP.net

TL;DR 您不能用非常数值初始化属性。函数不是常数值。

特性

类成员变量称为“属性”。您可能还会看到使用“属性”或“字段”等其他术语来提及它们,但出于本参考的目的,我们将使用“属性”。它们是通过使用关键字 public、protected 或 private 之一定义的,后跟一个普通的变量
声明。这个声明可能包括一个初始化,但是这个初始化必须是一个常量值——也就是说,它必须能够在编译时被评估,并且不能依赖于运行时信息才能被评估。

于 2013-04-11T23:45:31.367 回答
0

date是一个函数。函数是从方法中调用的。再加上给你的$todaysDate变量一个值在构造函数中更合适。

于 2013-04-11T23:37:41.687 回答