[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменить свойство родительського класса
savelikan
Привет всем! Подскажите, пожалуйста, возможно ли переустановить значение свойства родительского класса?
Например:

class aaa{
public $code = false;

public function show(){
echo $this->code;
}
}


class bbb extends aaa{
function __construct(){
$this->code = 555;
$this->show();
}
}

Тут будет пустая страница, потому, что $this->code = 555; доступен только в классе bbb.
Как изменить свойство подительського класса? Кроме использования статического свойства.

_____________
Одесса - мой город!)))
VeRTak
savelikan

Если мне не изменяет память, parent:: поможет
savelikan
Цитата (VeRTak @ 28.07.2017 - 14:48)
savelikan

Если мне не изменяет память, parent:: поможет

если свойство статическое - тогда сработает, а если не статическое - ошибка...

_____________
Одесса - мой город!)))
Игорь_Vasinsky
наследование работает в другую сторону. это не верный подход - менять что либо у родителя.

_____________
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
killer8080
Цитата (savelikan @ 28.07.2017 - 16:37)
Тут будет пустая страница, потому, что $this->code = 555; доступен только в классе bbb.

на основании чего ты пришёл к таким бредовым выводам? По тестил бы для начала собственный код biggrin.gif
Invis1ble
Цитата (savelikan @ 28.07.2017 - 16:37)
Тут будет пустая страница, потому, что $this->code = 555; доступен только в классе bbb.

Уверен? Если создашь объект типа bbb, то выведется твой 555.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

savelikan
нашел решение)
просто в родительськом классе нужно создать функцию, например setData, которая измененяет свойство, а в дочернем классе просто вызвать ее и передать ей новое значение.

_____________
Одесса - мой город!)))
killer8080
Цитата (savelikan @ 28.07.2017 - 18:03)
нашел решение)

решение чего? Вымышленной проблемы? blink.gif
Invis1ble
Цитата (savelikan @ 28.07.2017 - 18:03)
нашел решение)
просто в родительськом классе нужно создать функцию, например setData, которая измененяет свойство, а в дочернем классе просто вызвать ее и передать ей новое значение.
Быстрый ответ:

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