Это исторический момент, господа: мы наблюдаем рождение искуственного разума. Пишите реальные имена в QIPе, скоро наши руководители смогут наблюдать за нашей работой онлайн, в то время как мы будем отдыхать на пляжах.
Мне вообще не нравится, когда функция может возвращать либо результат, либо ошибку. Ошибка должна обрабатываться общим механизмом исключений, а не отдельно после каждого вызова функции.
Это оправданные затраты. Нормальная IDE, типа Eclipse, при наведении на метод будет показывать его описание из PHPDoc, например. И вообще, это полезно: сначала написать комментарий, а потом написать код, т.к. сначала думаешь, а потом делаешь.
Кстати, нет. Если я не объявлю этот метод, то не смогу получить доступ к private x напрямую. Если же я объявлю его как protected — смогу изменить из потомка.
Тогда читайте ещё раз и внимательнее, попробуйте найти отличия от примера по Вашей ссылке в моих комментариях. Больше я Вам, увы, ничем помочь не могу.
А он и не должен просто возвращать данные. Возможно, я хочу как-то фильтровать их для клиента. Возможно, по какому-то параметру. Так что я ограничиваю доступ к исходнику и выдаю только то, что считаю нужным.
Это, вообще говоря, сильно упрощенный пример, чтобы не растекаться мыслью по древу, так сказать.
Но, допустим, есть базовый класс — сборщик неких данных. Нужно дать интерфейс для получения этих данных без возможности их изменения.
<?php
interface AB
{
public function getX();
}
class A
{
private $x = 1;
protected function getX()
{
return( $this->x );
}
}
class B extends A implements AB
{
public function getX()
{
return( parent::getX() );
}
}
$b = new B();
echo( $b->getX() );
?>
Насчёт пункта 6. В PHP, например, при использовании циклов нужно хранить размер массива в переменной, а не использовать count() в условии, т.к. он вычисляется на каждой итерации.
Насчёт пункта 7. Опять на PHP. В классе A объявляется protected свойство x. Класс B наследуется от класса A. Задача получить значение свойства x решается через объявление в классе B public метода getX(). Думаю не нужно объяснять, для чего это применяется.
Я, кстати, задумался, насколько в поледнее время перестал обращать внимания на дизайн сайтов. Во-первых, конечно, важно наполнение и работа функционала, во-вторых, что-то давно не видел действительно удачных дизайнов…
Но, допустим, есть базовый класс — сборщик неких данных. Нужно дать интерфейс для получения этих данных без возможности их изменения.
отличная книга вообще
Насчёт пункта 7. Опять на PHP. В классе A объявляется protected свойство x. Класс B наследуется от класса A. Задача получить значение свойства x решается через объявление в классе B public метода getX(). Думаю не нужно объяснять, для чего это применяется.