内部的date()会导致错误

时间:2013-08-16 01:21:30

标签: php class

毫无疑问这是一个非常愚蠢的问题,我正在掌握类和我试图分配变量,如果我使用字符串作为变量值它工作正常但是当我使用时:

class MyTest{
    private $my_date = date("Y-m-d H:i:s");
}

$my_test = new MyTest;
echo $my_test->$my_date;

然后我收到一个服务器错误,但它没有打印任何记录错误的日志,dreamviewer也将其显示为错误,但如果我将它加载到类之外就好了。

请不要笑,我做错了什么?

如果我这样做

class MyTest{
    private $my_date = "today";
}

$my_test = new MyTest;
echo $my_test->$my_date;

然后我没有得到任何错误。

2 个答案:

答案 0 :(得分:4)

声明类变量时无法调用函数。您需要在类构造函数中设置值。像这样:

class MyTest{
    private $my_date;

    public function __construct() {
        $this->my_date = date("Y-m-d H:i:s");
    }
}

见这里:http://www.php.net/manual/en/language.oop5.properties.php

类成员声明“可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。 “

答案 1 :(得分:2)

无法像您一样在声明时调用函数。这样做:

class MyTest{
    public $my_date;

    function __construct() {
        $this->my_date = date("Y-m-d H:i:s");
    }
}

$my_test = new MyTest;
echo $my_test->my_date;

除此之外,如果要从类外部调用变量,则必须将变量设为public。调用变量在 - >。

之后没有$
相关问题