수정 됨 - 여러 클래스 정의가 파일 (파일 당 하나의 클래스)에 분산되어 있습니다. 제가하려고하는 것은 이것입니다; 나는 Master
이라는 클래스를 가지고 있습니다.이 클래스는 인스턴스를 만들고, 차례로 Master
객체는 정의 된 나머지 클래스의 인스턴스를 만듭니다. Master
에는 내부에 정의 된 모든 속성이 있습니다. Master
가 생성하는 인스턴스에서 PHP 클래스 속성/메소드 동기화
$this->MasterInstance->methodinMaster
를 호출 '
Master
전달하는 필요없이 바로
$this
즉
$this->methodInMaster
에서의 속성/방법'을
Master
를 사용할 수 있도록하려면 . 이것을 달성 할 수있는 방법이 있습니까?
extends
키워드는 전혀 도움이되지 않습니다. Master
의 인스턴스를 생성하는 클래스는 Master
의 속성과 메서드를 상속하지만이 인스턴스가 Master
의 속성을 변경하면 Master
개체에 변경 내용을 저장 한 개체가 저장되지 않습니다. 즉, 다른 클래스에서는 변경 내용을 볼 수 없습니다.
나는 이것이 '인스턴스'가 없도록 정적으로 만들지 못하지만, call, set
과 get
매직 방법을 사용하여이 모든 것을 극복 할 수있는 한계가 있다고 생각하십니까?
그게 사실인지 확인 했니? 그것은 상속의 전체 아이디어에 반대됩니다. – Viruzzo
나는 무엇을 성취하려고하는지 모르지만 클래스에서 확장하는 것은 객체의 인스턴스가 아닌 메서드와 필드 만 확장하는 것입니다. 어쩌면 당신은 어떤 디자인 패턴을 프록시 또는 공장과 연결해야합니까? –
Viruzzo 그것은 PHP의 행동입니다. 나도 이해하지 못합니다. 기본적으로 내가하려고하는 것은 여러 클래스에 여러 파일이 분산되어 있다는 것입니다. 하나의 클래스에 대부분의 프로퍼티를 넣었고 인스턴스를 참조하지 않고도'$ this-> property'를 통해 다른 클래스에 액세스 할 수 있기를 원합니다. '__get(), __set() and __call'은 갈 길인 것 같습니까? (?)하지만이 일을하는 방법을 알 수는 없습니다. – Blake