, поэтому я пытаюсь решить проблему, которую я имею при разработке классов PHP. Я создал базовый класс и назначил частные переменные. У меня есть дочерние классы, расширяющие этот базовый класс, которые делают ссылку и изменяются этими частными переменными через функции базового класса. Вот пример того, имейте в виду, что я до сих пор путают о разнице между private
и protected
методы/переменные (дайте мне знать, если я делаю это неправильно!):PHP Частный доступ переменной от дочернего
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;
}
}
?>
sub.class.php
<?php
class Sub extends Base {
public function __construct(){
parent::setTest('hello!');
}
}
?>
Так что я бы ожидать, что результат будет hello!
выводится на экран - вместо того, чтобы нет ничего. Может быть, фундаментальное непонимание классов с моей стороны, или, может быть, я просто делаю что-то неправильно. Любое руководство очень ценится! Благодарю.
EDIT:
Спасибо всем, кто внес свой вклад в ответ - я думаю, что, несмотря на отличные решения, что дочерние классы, на самом деле не то, что мне нужно - это, кажется, делегируют классы могут быть более полезными в этой точке, как Мне не нужно ссылаться на базовые функции из других классов.
попытка эхо ($ суб-> getTest()); – bumperbox
Попробуйте [PHP5 OOP] (http://www.php.net/oop5). – meze
Нет никаких 'echo' или' print' для вывода чего-то на экран – zerkms