这是我的班级
class Databases {
public $liveresellerdb = new Database('1host1','user','pswd','db');
}
我得到的错误是
Parse error: syntax error, unexpected T_NEW in /home/abhijitnair/sandbox/newreseller/Databases.php on line 33
为什么会出现这个错误?
答案 0 :(得分:3)
可能无法使用运行时信息预设属性。
类成员变量称为“属性”。您也可以使用“属性”或“字段”等其他术语来查看它们,但出于本参考的目的,我们将使用“属性”。它们通过使用public,protected或private之一,然后是普通变量声明来定义。此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能成为评估。
答案 1 :(得分:1)
<?php
class Databases {
public static $liveresellerdb;
}
Databases::$liveresellerdb = new Database('1host1','user','pswd','db');
?>
这是初始化静态成员的方法......
答案 2 :(得分:0)
因为您忘记将the static
keyword写入实际上使该属性成为静态。
此外,您无法使用此类表达式初始化静态属性。 Here's a workaround
答案 3 :(得分:0)
你不能在课程预备阶段分配对象,只能分类课程:
class Databases
{
public $liveresellerdb;
public function __construct()
{
$this->liveresellerdb = new Database('1host1','user','pswd','db');
}
}
构造函数中的任何内容都可以是函数外部的通用PHP代码,而不是类主体具有特定的规则。
如果您要求数据库是静态的,那么您必须以不同方式设置/访问它们。
class Databases
{
public static $liveresellerdb;
}
Databases::liversellerdb = new Database('1host1','user','pswd','db');