开始使用oop
为什么:
class user
{
private $pdo;
function __construct()
{
$this->pdo = singleton::get_instance()->PDO_connection();
}
...
}
这很好用。但是这个:
class user
{
private $pdo = singleton::get_instance()->PDO_connection();
...
}
这不起作用。错误parse error, expecting ','' or ';'' in ...
第二个变种出了什么问题?
答案 0 :(得分:3)
请参阅Properties中<{3}}的第一段的最后一句:
调用类成员变量 “属性”。你也可以看到它们 提到使用其他术语,如 “属性”或“字段”,但对于 我们将使用此参考的目的 “属性”。它们的定义是 使用关键字public之一, 受保护的,或私人的,然后是 正常变量声明。这个 声明可能包括 初始化,但是这个 初始化必须是常量 价值 - 也就是说,它必须能够 在编译时评估,但不得 依赖于运行时信息 为了评估。
换句话说,此语句返回的数据库处理程序不是一个常量值,因此在编译时不可用:
singleton::get_instance()->PDO_connection();
答案 1 :(得分:0)
使用函数在声明时无法分配类属性。标量值,常量(虽然不是当前类的常量)和仅数组。