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

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();
php
ооп

1 ответов

0

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

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

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

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

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

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

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

Sign up or Log in to write an answer