1
편집 :하위 클래스를 통해 부모 클래스 변수를 설정/수정하려면 어떻게해야합니까?
죄송합니다. 자식 클래스 호출에서 $ this로 부모 클래스를 전달하여 수행하려는 작업을 수행 할 수있었습니다. $load = new Child_Class($this);
꽤 추한 것처럼 보이지만 내 목적에 부합합니다.
기본 아이디어는 몇 가지 변수가있는 상위 클래스를 작성한다는 것입니다.
class Parent_Class {
public $amount = 0;
public $user_id = 0;
public function __construct() {
// I load the child to do some work and update amount.
$load = new Child_Class();
}
}
그러면 하위 클래스가 있습니다. 자식 클래스 내에서 부모 클래스 $ amount 변수를 업데이트하려고하지만 부모 클래스 변수에서 액세스하려고합니다. 작동
$parent = new Parent_Class();
$amount = $parent->amount;
을하지만이 작동하지 않습니다 만 $parent::$amount
(정적) :
class Child_Class extends Parent_Class {
public function __construct() {
// How can I do this?
parent::$amount = 50; // update the amount in parent
}
}
문제
내가이 같은 데이터에 액세스하기 위해 노력하고 있다는 점이다. 그것이 비 정적 변수로 작동하게하는 방법이 있습니까? 내가 자식 클래스에 몇 가지 작업을하고 난 당신이 어떻게 클래스 작업에 대한 혼란이라고 생각$parent->amount;
본인은 수업에 익숙하지 않으므로 양해 해주십시오. 내가 뭘 하려는지 부모에 변수를 덮어 씁니다 그래서 부모로부터 액세스 할 수 있습니다. 예 : 부모 금액 = 0, 금액 변경을 하위 클래스 내에서 만들려고하지만 부모로부터 여전히 금액에 액세스합니다. 나는 $ this-> amount = 50을 시도했지만 부모 양인 0을 반환합니다. 그래서 나는 금액을 재교부하려고 노력하고 있다고 생각하니? 나는 약간 혼란 스럽다. –
나는 실제로 부모 클래스 인 양 (child amount)으로부터 금액을 갱신하려고 시도하고 있으며, 자식으로부터 만 접근하려하지 않는다. 희망이있다 : –
당신의 자식 클래스가 스스로 인스턴스화 될 때 그것은 부모와 모든 메소드를 암시 적으로 인스턴스화한다. 그래서 그들을 재 선언하거나 따로 설정할 필요가 없습니다. – Machavity