0
글쎄, 나는 더 오래된 객체 지향 모델에 나의 오래된 코드를 적용하려고 노력하고있다. 그러나 나는 그것을하는 데 어려움을 느낀다. 클래스의 구조는 다음과 같습니다.PHP로 정리하고 관련 짓기
// 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
은 Config
에서 상수를 필요로합니다. 그러나 에서 새 Config
을 만들고 Db
을 사용하고 싶지는 않습니다. Info에서도 마찬가지입니다.
현재 주에서 액세스 할 수있는 객체 인? – steven
이 코드는'$ Setting1 = $ Main-> Config :: Setting1'에 있습니다. T_PAAMAYIM_NEKDOTAYIM 오류가 발생합니다. – ali
이러한 디자인의 목적은 무엇입니까? 첫째, var는 private, protected 또는 public으로 대체되어야합니다. 둘째로, 내부 클래스에 메소드를 작성하여 내부 메소드에 write 메소드 getSetting ($ a)과 같은 내부 객체를 사용할 수 있습니다. 그러면 자동으로 Config를 내부 멤버로 전달하여 Main 클래스 사용을 더 간단하게 만듭니다. 읽으려면 – insanebits