毫无疑问这是一个非常愚蠢的问题,我正在掌握类和我试图分配变量,如果我使用字符串作为变量值它工作正常但是当我使用时:
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;
然后我没有得到任何错误。
答案 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。调用变量在 - >。
之后没有$