我想这是相当简单的,我应该可以得到但是我遇到了麻烦。我似乎无法在任何地方找到答案。
考虑一下场景:我有两个文件(我们称之为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;
?>
答案 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;