【发布时间】:2016-01-18 22:10:39
【问题描述】:
Config.php
class Config {
public static $dbserver = "hostedserverURL";
}
DB.php
require 'Config.php'
class DB {
private $server = Config::$dbserver; // compile-error
private $user = "user";
private $password = "password";
private $database = "databasename";
private $db;
}
编译错误说“syntax error, unexpected '$dbserver', expecting 'identifier' or 'class'”
如果我删除 $ 并将行更改为 private $server = Config::dbserver; ,编译错误就消失了。但这不正确。
在这种情况下,我会收到运行时错误。
Fatal error: Undefined class constant 'Config::dbserver' in ..
所以我必须保留 $ ,也按照这个 SO 线程:Fatal error: Undefined class constant
这就是我使用它的地方,
public function __construct()
{
$this->db = new PDO(
"mysql:host={$this->server};dbname={$this->database};charset=utf8",
$this->user,
$this->password
);
return $this;
}
问题:如何引用静态变量 dbserver 并将其设为 class DB 的 $server 的默认值?有什么想法请教
【问题讨论】:
-
仅在PHP 5.6 部分可用
标签: php