작업중인 프레임 워크 프로젝트의 "슈퍼 오브젝트"(CodeIgniter의 것과 비슷합니다)를 만드는 데 문제가 있습니다.슈퍼 오브젝트의 가변 범위 문제
다른 모든 클래스가 실행되는 슈퍼 오브젝트를 만들고 싶습니다. 그랬지 만 모든 함수에서 global 키워드를 사용하지 않고 각 클래스에서 슈퍼 객체의 객체를 사용할 수없는 것 같습니다. 내가 이것을 실행하면 나는 AA 방법을 액세스 할 수 없기 때문에
class a
{
function aa()
{
return 'class a';
}
}
class b
{
function bb()
{
$blah->a->aa();
}
}
class superobj
{
function loadClass($class)
{
$this->$class = new $class;
}
}
class blah extends superobj
{
function __construct()
{
$this->loadClass('a');
$this->loadClass('b');
}
}
$blah = new $blah;
그래서, 나는 오류가 발생 :
나는 이런 식으로 뭔가가있다. 전역 $ blah를 메서드 bb에 넣으면 작동합니다 (또는 적어도 실제 프로젝트에서는이 5 초 모형을 사용하지 않습니다).
모든 방법으로 참조 할 필요가 없도록 $ blah 개체를 전역으로 만들 수있는 방법이 있습니까? 아니면 내가 수행하려고하는 것을 달성하는 더 좋은 방법이 있습니까? 나는 OOP에서 아주 좋은 아니에요
...
가능한 복제본 : http://stackoverflow.com/questions/1234445/php-global-variables – thomaspaulb