【问题标题】:Why can't I declare a "date" in a class?为什么我不能在课堂上声明“日期”?
【发布时间】:2013-04-11 23:35:41
【问题描述】:

我真的不知道该谷歌什么,因为我在不知道行话的情况下学习了 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'));
    }
}

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

【问题讨论】:

标签: php oop


【解决方案1】:

来自PHP.net

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

属性

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

【讨论】:

    【解决方案2】:

    date 是一个函数。函数是从方法中调用的。另外,在构造函数中为您的 $todaysDate 变量赋值更合适。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 2014-09-18
      • 2014-09-17
      • 1970-01-01
      相关资源
      最近更新 更多