好吧,我正在尝试使我的旧代码适应更面向对象的模型,但我发现这样做有困难。我的类的结构如下所示:
// config.php
class Config {
const Setting1 = 'value';
const Setting2 = 'value';
}
// main.php
include 'config.php'
class Main {
var $Config;
var $Info;
var $Db;
function _construct() {
$this->Config = &new Config;
$this->Info = &new Info;
$this->Db = &new Db($this);
}
}
class Info {
function getSetting($a, $Config) {
if ($a>0) return $Config::Setting1;
return $Config::Setting2;
}
}
class Db {
function _construct($Main) {
$Setting1 = $Main->Config::Setting1;
}
}
// index.php
$Main = new Main;
echo $Main->Info->getSetting(1, $Main->Config);
因此,如您所见,此代码中有不正确的内容。我想要的是将所有内容都包含在Main
类中,创建$Main
对象并从那里访问任何其他对象。
Db
将需要一个常量 fromConfig
但我不想在Config
内部创建一个新Db
但使用 from Main
。Info 也是如此。