Как получить значение изменённой переменной из базового (parent) класса?

Setor

Новичок
Как получить значение изменённой переменной из базового (parent) класса?

Как получить значение изменённой переменной из базового (parent) класса?
PHP:
class A
{
	var $variable = 'yes';
	function A()
	{
		$this->variable = 'no';
	}
}

class B extends A
{
	function B()
	{
		echo $this->variable;
	}
}

$a = new A();
$b = new B();
Выводит: yes
Я же хочу, чтобы оно мне написало: no

Если же немного модифицировать класс B
PHP:
class B extends A
{
	function B()
	{
		parent::A();
		echo $this->variable;
	}
}
то на выходе будет: no

Но мне не надо вызывать конструктор 2 раза, а получить из второго класса доступ к модифицированным переменным первого класса необходимо! Или единственный выход использовать нечто вроде:
PHP:
class B
{
	function B(&$a)
	{
		echo $a->variable;
	}
}
$a = new A();
$b = new B($a);
или писать функцию для извлечения переменной из класса А... ?
 

Crazy

Developer
Какой редкий бред... Какая каша в голове...

Setor, купи и прочитай какую-нибудь книжку на тему "что такое ООП и зачем оно нужно".
 

Setor

Новичок
Crazy
эх... бюсь, что ты прав...

но мне всё равно интересно, почему данный пример не работает... я почему-то ни где пока что не встречал статей с более техническим описанием работы некоторых вещей... например, тех же классов

насчёт ООП было много споров, я прекрасно понимаю, что он мне сильно пудрит мозги, но тем самым я пытаюсь хоть как-то вникнуть в его суть...

в последнее время я слишком много думаю, пытаясь найти более идеальное решение поставленной задачи, в результате чего вся эта каша в голове! На данный момент придётся отказываться от ОПП :)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Setor
но мне всё равно интересно, почему данный пример не работает...
"всё понял в паровозе, не понял куда лошади цепляются"
 

Setor

Новичок
admin
задачу я в принципе, описал в первом посте - хотел получить модифицированные переменные первого класса во втором.

Но немного поразмыслив, понял, что не к чему иметь столько классов и от некоторых отказался. Скажем так, проблема решилась сама собой.
 

_RVK_

Новичок
Setor все потому что ты путаешь объекты и классы. Обект это переменная а класс это тип. Ты создаешь 2 объекта, один от базового класса, другой от потомка базового класса. Но это не имеет никакого значения, так-как один обект не имеет никакого отношения к другому, так как это две различные переменные.
 

Setor

Новичок
Diesel, спасибо. Я себе это так и представлял (начал не так давно представлять)...
 
Сверху