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


PHP require() or include() and call a class variable?

我想这很简单,我应该能得到,但我遇到了麻烦。我似乎在任何地方都找不到答案。

考虑这个场景:我有两个文件(我们称它们为index.php和global.php(。我正确地引用了require_once()文件。

Index.hp:

<?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;
?>
$database = new database();

你忘了括号了。此外,如果您需要有关在php中使用类的更多信息,请查看类和对象的php文档。

更新

在阅读PHP类属性时,我发现了一个小提示:

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

我不能百分之百肯定这一点,但PHP似乎将您的字符串分配视为"运行时信息"。尝试在构造函数中分配变量(无论如何,这可能是更好的做法(。

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

希望能有所帮助!如果有人能证实我的假设,那就太好了。

在php中创建对象的语法是

$obj=new class();

您在类名后遗漏了((。

我认为应该是

$database = new database(); 

而不是

$database = new database;