, поэтому я пытаюсь решить проблему, с которой столкнулся при разработке классов PHP. Я создал базовый класс и присвоил частные переменные. У меня есть дочерние классы, расширяющие этот базовый класс, которые ссылаются и изменяют эти частные переменные через функции базового класса. Вот пример, имейте в виду, что я все еще не понимаю разницы между методами/переменными private
и protected
(дайте мне знать, если я делаю это неправильно!):
base.class.php
<?php
class Base {
private $test;
public function __construct(){
require('sub.class.php');
$sub = new Sub;
echo($this->getTest());
}
public function getTest(){
return $this->test;
}
protected function setTest($value){
$this->test = $value;
}
}
?>
подкласс.php
<?php
class Sub extends Base {
public function __construct(){
parent::setTest('hello!');
}
}
?>
Поэтому я ожидаю, что результатом будет hello!
напечатано на экране - вместо этого ничего нет. С моей стороны может быть фундаментальное непонимание классов, а может быть, я просто делаю что-то не так. Любое руководство очень ценится! Спасибо.
РЕДАКТИРОВАТЬ:
Спасибо всем, кто предоставил ответ - я думаю, несмотря на отличные решения, что дочерние классы на самом деле не то, что мне нужно - кажется, классы делегатов могут быть более полезными на данный момент, поскольку я не на самом деле не нужно ссылаться на базовые функции из других классов.