PHP require()或include()并调用类变量?

时间:2011-08-19 18:19:49

标签: php class include require

我想这是相当简单的,我应该可以得到但是我遇到了麻烦。我似乎无法在任何地方找到答案。

考虑一下场景:我有两个文件(我们称之为index.php和global.php)。我正在引用require_once()文件。

的index.php:

<?php
require_once('./global.php');

$database = new database();
echo $database->dbname;
?>

Global.php:

<?php
class database {
public $dbname = 'jdoe';
}
?>

这不会在index.php页面上输出'jdoe'。但是......如果我将以下内容放入global.php,它可以工作:

<?php
class database {
public $dbname = 'jdoe';
}

$database = new database();
echo $database->dbname;
?>

3 个答案:

答案 0 :(得分:2)

$database = new database();

你忘记了括号。另外,如果您需要有关在php中使用类的更多信息,请查看Classes and Objects的php文档。

<强>更新

阅读PHP Class Properties我发现了这个小小的一点:

  

[类成员变量]必须能够在编译时进行评估,并且不得依赖于运行时信息才能进行评估。

我对此并不是100%肯定,但似乎PHP将您的字符串赋值视为“运行时信息”。尝试在构造函数中指定变量(无论如何都可能是更好的实践)。

class database {
    public $dbname;
    function __construct() {
        $this->dbname= 'jdoe';
    }
    // Rest of class
}

希望有所帮助!如果有人能够证实我的假设会很棒。

答案 1 :(得分:2)

在php中创建对象的语法是

$obj=new class();

您在课程名称后遗漏了()。

答案 2 :(得分:1)

我认为应该是

$database = new database(); 

而不是

$database = new database;