Архив рассылки -программирование на PHP

         

Эффективность пусть каждый для себя ищет сам


Эффективность пусть каждый для себя ищет сам. Это замечание для снобов, которые могут сейчас сказать, что мой демонстрационный код можно было написать намного короче. Да это так. Но кто меня поймет, если я напишу все тело первой функции вот так:
$this->$a+=(int)$x;
Можно так написать. Но это не очень понятно для тех, кто слабо знаком с синтаксисом PHP или C. Давайте уважать психику других.


Обратите внимание на конструкцию $this->. Таким образом внутри класса мы обращаемся к любому объявленному объекту класса. Будь то переменная или функция.

ООП тем и приятно, что нам в конструкциях вызова процедур или переменных не надо ничего менять. Функция отличается от переменной во время вызова только тем, что содержит у себя "на хвосте" дополнительные параметры или пару пустых скобок, если параметров нет.

$this->labuda — это переменная.
$this->labuda() — это функция.

echo "Результаты работы: ".$this->labuda()." и ".$this->labuda; — вывод обоих значений: значение переменной будет выведено как есть, а функция отработает и выдаст результат своей работы не хуже переменной. Точка "." в PHP используется для слияния двух строк:
"123"."abc" = "123abc"

    Обращаю внимание: переменная и функция вполне могут иметь одинаковые имена, интерпретатор PHP сам разберет "кто есть who", если вы не будете забывать про скобки на хвосте у функций. В больших проектах я этим часто пользуюсь, чтобы не путаться.



Возвращаясь к наследованию.

Мы создаем класс "second", от класса "first":

class second extends first
{
...
}

Даже если на месте двоеточия (в теле класса) мы не определим ни одной переменной или функции, мы можем пользоваться теми, которые были описаны в классе first.

Таким образом, в ООП создают классы и наследуют их, двигаясь от общего к частному. Получается четкая древовидная структура классов, которую мы и создадим для нашего проекта.



Содержание раздела