отличие class от function php

276
28 февраля 2017, 18:41

здравствуйте, программирую на php без нескольких месяцев год, и пока что не могу точно понят в чём преимущество классов по сравнению с функциями, и почему профессионалы большинстве используют классы?

Объясните пожалуйста доходчиво в чем разница, или может на примере

Answer 1

Это очень глубокий и широкий вопрос. Перефразируя, звучит так: в чем отличие процедурного от объектно-ориентированного программирования?

В первом случае, во главу угла ставится действие, т.е. набор последовательных команд для решения определенной задачи.

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

Попытка всё это объяснить на примере PHP

Answer 2

Представим школу.

Ученики это переменные или функции (в классах правильней назвать методами), а школа это Ваш код. Класс объединяет учеников в группы, тоже самое происходит и в коде.

Плодить кучу функций аля gruppa_naznachenie1(), gruppa_naznachenie2() не очень удобно. Тем более можно сделать класс, который будет расширять или изменять возможности другого класса не изменяя его.

Ещё класс удобен тем, что все действия будут происходить внутри него и некоторые ненужные данные не вырвутся дальше него.

А теперь просто зрительно сравним просто процедуры

echo work_func1("blablabla").$work_var1;

и работу с классом

$work = new WorkClass(); echo $work->func1("blablabla").$work->var1;

Также класс ещё много в чём удобен. Я не хочу навязывать Вам какое-либо мнение. Я лично в маленьких проектах работаю процедурно, без мании величия классов. Попробуйте написать что-нибудь с использованием классов и посмотрите - надо это Вам или нет, может когда-то и пригодится.

READ ALSO
Возвращает строку вместо json-объекта

Возвращает строку вместо json-объекта

Есть файл, в котором обрабатываются данные и есть прокси, который написан для для кросс-доменных запросовФайл, в котором обрабатываются данные,...

306
Как прибавить к времени до ровного значения?

Как прибавить к времени до ровного значения?

У меня в системе есть автоматические задачи при изменении статуса клиента, автоматически ставится задача у которой есть значение "выполнить...

193
Вывод таблицы в 3 колонки

Вывод таблицы в 3 колонки

Хочу вывести таблицу с данными в 3 колонки - не получаетсяПрошу помочь

255
Почему не работает фильтр woocommerce?

Почему не работает фильтр woocommerce?

Добрый день,уважаемые форумчане,достался мне недоделанный сайт,прошлый разработчик по желанию заказчика сделал вывод категорий по ID на отдельных...

380