同时使数据库的静态类出现此错误

时间:2011-03-16 10:57:35

标签: php static

这是我的班级

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

为什么会出现这个错误?

4 个答案:

答案 0 :(得分:3)

可能无法使用运行时信息预设属性。

Quoting PHP Manual:

  

类成员变量称为“属性”。您也可以使用“属性”或“字段”等其他术语来查看它们,但出于本参考的目的,我们将使用“属性”。它们通过使用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');