Здравствуйте,сейчас под музло STIGMATA я пишу свой очередной быдло - розказ.
А поговорим мы сегодня опять же про ООП, не , не бойтесь питон я уже давно не юзвал и поговорим мы сегодня о ООП в PHP, а точнее о том что я пропустил и возможно было не понять в моём преведущем быдло-розказе.
Сначало напишу пример , а потом мы его розберём, теперь хоть пример пориалистичнее будет,не всякие тама "Hello world" & "Test"
<?
class StigmataGroup extends StigmataController {
public $turs = array();//туры#6
protected $clips = array('Лёд', 'Мой путь', 'Взлёт и падение');//клипы#5
private $audio = array('Клуб самоубийц','Камикадзе','Stigmata', 'Мир упавший на колени','Мой путь', 'Крылья','Последний день','Секунды');//кафвовое музло#4
const Vocals = 'Nelson';//вокалист, самое главное#7
public static $group = array('Артём', 'Ёж' , 'Тарас', 'Вова');//написал только кого уважаю #3
public function show_info() {
print 'Туры:';
print (count($this->turs) > 0) ? join(',', $this->turs).'<br/>': 'STIGMATA пока не едет в туры<br/>';
print 'Самое няшные хитяры:';
print join(',',$this->audio).'<br/>';
print 'Клипы:'. join(',', $this->clips).'<br/>';
print '<b>Вокалист:</b>'.self::Vocals.'<br/>';
print '<i>Cостав:</i>'. join(',', self::$group).'<br/>';
}
}
class StigmataController {
public function addAudio($name) {//добавление клипа
$this->audio[] = $name;
return true;
}
public function addTur($tur) {//добавление клипа
$this->turs[] = $tur;
return 1;
}
public function addClip($clip) {
$this->clips[] = $clip;
return true;
}
}
$Stigmata = new StigmataGroup();
$Stigmata->addTur('Тур по свей европе ))');
//$Stigmata->addAudio('До 9 ступени');#1, ошибка
$Stigmata->addClip('До 9 ступени');//#2
$Stigmata->show_info();
?>
Вот теперь мы можем перейти к разьяснениям, буду обьяснять строчки помечение "#"
#7 - (cons) - это констант, которым изменят нельзя,вызывается в зависимости от доступа к нему
#6 - (public) - c данный обьедком можно делать всё что мы хочем
#5 - (protected) - с данным обьектам мы можем делать всё что захотим, в пределах разумного конечно, того что заюзывать
мы его можем только в классах которые наследуются(наследуется он у нас с классом StigmataController) с тем в котором он сейчас находится (StigmataGroup)
#4 - (private) - с данным обьектом можно делать всё что угодно в пределах класа StigmataGroup
#3 - (public static) - это статический обьект, он не меняется в разных вызовах этого класса , как другие
#2 - всё ок, потому что класс StigmataGroup наследуется с StigmataController
#1 - в строке будет ошибка, потому что мы изменяем private переменную которая доступна лишь в класе StigmataGroup