Зачем нужна функция sayit?

0
0

В курсе PHP на первом занятии по ООП не совсем понятно зачем нужна функция sayIt() если тоже самое делает функция getWords().

class human {

private $words;

public function setwords($words)
{
$this->words=$words;
}

public function getwords(){
return $this->words;
}

public function sayit(){
return $this->getwords();
}
}


$human = new human();

$human->setwords("Слово");

echo $human->sayIt();

// В echo же можно написать просто $human->getwords();

Anton_RT

2 months ago

Один ответ





Здравствуйте, Антон

Можно написать $human->getwords();

Здесь я показывал немного другой функционал. 

Есть getters и setters. У них очень простое предназначение - задавать значения для полей для того, чтобы не нарушать инкапсуляцию. т.е. эти методы просто устанавливают или отдают значение для поля класса. Если попробовать вызывать приватное поле напрямую - мы получим ошибку.

Метод sayit() - это другое немного.

В sayit() может быть любая реализация, например можно подключить библиотеку-генератор голоса, которая на вход получает текст, а на выходе произносится текст. В getter $this->getwords() не стоит помещать такой функционал, ведь человек может произносить слова не только голосом, но и жестами, печатать текст и прочее. Для печатания текста может быть метод typeIt(). Getter просто отдает нужное нам поле класса. 

Там дальше про наследование, интерфейсы посмотрите. Лучше всего ООП осваивается при изучении фреймворков. 

Сергей Никонов

teacher

2 months ago

Ваш ответ