我想这很简单,我应该能得到,但我遇到了麻烦。我似乎在任何地方都找不到答案。
考虑这个场景:我有两个文件(我们称它们为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;