[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Доступ к родительским свойствам
deberin
Растолкуйте с наследованием.
 
class a{
public $param_a=10;
}

class b extends a{
function test() {
$this->param_a="test";
return $this->param_a;
}
}


$a=new a();
$b=new b();
echo $b->test();
echo $a->param_a;

В результате: тест 10
А как же наследование? Почему не "тест тест" :(



Спустя 44 минуты, 12 секунд (19.03.2011 - 17:22) T1grOK написал(а):
Правильно выводит! Объект класса $a никаким боком не связан с объектом класса $b. Это 2 совершенно разных объекта.

$a =new a();
$a->param_a = 0;
$a1=new a();
$a1->param_a = 1;
$a2=new a();
$a2->param_a = 2;
echo $a->param_a.' , '.$a1->param_a.' , '.$a2->param_a;//выведет 0 , 1 , 2

У вас класс а наследуется классом b, тем самым класс b теперь может использовать свойства и методы класса а.

echo $b->test();
echo $b->param_a;//выведет 'test'

Спустя 1 день, 17 часов, 2 минуты, 16 секунд (21.03.2011 - 10:24) linker написал(а):
А с какого рожна должно выводиться "тест тест"? Вы не правильно себе представляете наследование. Читаем и учим заново.

Спустя 55 минут, 5 секунд (21.03.2011 - 11:19) Zerstoren написал(а):
class a{
public $param_a=10;
}

class b extends a{
function test() {
$this->param_a="test";
return $this->param_a;
}
}


$b=new b();
echo $b->test();
echo $b->param_a;


Наследование происходит снизу вверх (от чилдренов к парентам)
Быстрый ответ:

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