[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить текущие значения свойств родителя
McLotos
Добрый день. Подскажите, как можно получить текущие значения свойств родителя?
Есть PUBLIC свойства объекта dBase, которые могли быть изменены.
Как в потомке класса dBase можно получить измененные значения свойств?
Пока сделал через var_dump()
но мне совсем не нравится этот вариант. =(

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Игорь_Vasinsky
ну наверн как вариант - пересохранить все оригиналы

class ParentClass{
public $parentValue;

public function __construct(){
$this->parentValue = "this is parent value";
}
}


class ChildrenClass extends ParentClass{

public function __construct(){
parent::__construct();

$this->originalParentValue = $this->parentValue;

}
}


$obj = new ChildrenClass;
$obj->parentValue = 'children value';

echo $obj->parentValue;
echo '<br/>';
echo $obj->originalParentValue;



не в курсе - можно ли получить весь список свойств со значениями - может есть какая нить константа или предустановленный метод.
гугл не помог.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
McLotos
Прикол в том что потомок может получать только предустановленные свойства родителя. Если они не были предустановлены у родителя, то потомок их не увидит, а если они были предустановлены, но в процессе работы родителя были изменены, то потомок увидит только их дефолтное значение.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
McLotos, может быть я что-то недопонял в твоем вопросе? Но все свойства, тем более публичные, доступны для потомков класса. Это не что иное, как дефолтное поведение класса. И как ты их сможешь поменять так, чтобы не обратиться к классу c2 (в моем примере ниже)?

class c1
{
public $v1=10;
}

class c2 extends c1
{
public function get_v1()
{
return $this->v1;
}
}


$c = new c2();

$c->v1 = 20;
echo $c->get_v1();


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
stump
Если пример сложнее чем описал sergeiss, то можно воспользоваться паттерном состояние. Вроде специально для вашего случая.

_____________
Трус не играет в хокей
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.