Ответ 1
Фон:. Вы попросили "простое объяснение", которое предлагает:
- Вам нужен обзор без излишеств без жаргона
- Вам нужно что-то, что поможет вам узнать с самого начала
- Вы обнаружили, что ни один человек не отвечает на вопрос таким же образом, и это запутывает. Вот почему вы здесь просите простое объяснение. Да?
Короткий ответ No-Jargon:
- Многие вводные объяснения быстро переходят в примеры "реального мира ООП". Это может привести к путанице больше, чем к помощи, поэтому не стесняйтесь игнорировать это на данный момент.
- Вы можете думать о исходном коде просто как "куски" функциональности, которые просто сохраняются в отдельных файлах.
- Существуют разные способы организации этих "кусков"; в зависимости от таких вещей, как соглашения о языке программирования, фон и обучение разработчика (ов) или просто старые личные предпочтения.
- ООП и процедурное программирование - это просто две основные общепризнанные методологии: как организовать и упорядочить эти "куски" кода.
Ответ на долгой жаргон:
Процедурный и ООП - это всего лишь один из аспектов фундаментальной проблемы компьютерного программирования: как сделать код проще понимать и кусок пирога профессионально поддерживать. Фактически вы можете написать "процедурный" код, который следует за некоторыми принципами ООП, поэтому они не обязательно являются противоположностями.
Ваше понимание действительно будет расти, если вы узнаете другие объектно-ориентированные языки программирования, среди которых PHP - "новый ребенок на блоке",.
Вот краткий обзор того, что вы узнаете по мере создания опыта:
- Вы можете написать исходный код PHP, который выполняет полезные задачи
- Вы можете организовать полезные задачи в "куски" кода
- Вы можете думать о "кусках" кода независимо от отдельных файлов, в которых они сохраняются.
- Иногда эти "куски" кода будут вести себя по-разному на основе параметров, которые вы передаете в
- Куски кода, которые принимают параметры, называются "Функции"
- Функции могут быть "разделены" вместе, и есть разные способы сделать это:
- Например: у вас может быть только один большой PHP файл со всеми функциями, которые вы когда-либо писали за всю вашу жизнь, перечисленные в алфавитном порядке по имени функции
- Например: у вас может быть несколько файлов PHP с функциями, разделяемыми по предмету [например, функции для выполнения основных операций с строкой, функции для обработки массивов, функции ввода/вывода файлов, и т.д.]
- ООП - это особый способ "группирования" функций вместе в "класс"
- Класс представляет собой еще один уровень кода "chunking" , чтобы вы могли рассматривать его как единое целое.
-
Класс можно рассматривать как "chunking" из методов и свойств
- методы - это просто функции, которые логически связаны друг с другом каким-либо значимым образом. Слова "метод" и "функция" в основном представляют собой два разных термина для одного и того же.
- свойства - это просто значения данных, относящиеся к классу. Это значения, которые намеренно не изолированы для какой-либо отдельной функции, потому что более чем функций класса должно иметь к ним доступ.
- Например: если у вашего класса есть множество методов для астрономии, свойства класса могут быть значениями для некоторых известных чисел, о которых должны знать все астрономические методы (например, Pi, скорость света, расстояние между определенными планетами и т.д.).
- Это , где большинство объяснений ООП запутываются, потому что они отходят на " примеры реального мира" который может быстро выйти из темы. Часто "реальный мир" является эвфемизмом для онтологических перспектив конкретного человека. Это обычно полезно только после того, как вы уже поняли концепцию достаточно хорошо, чтобы научить кого-то другому.
- Чтобы понять ООП без путаницы, вы можете пропустить примеры "реального мира" на данный момент и просто сосредоточиться на коде. Класс просто способ хранения функций (как методы) и свойств (aka data) как PHP-кода в одном или нескольких связанных "кусках" где каждый отдельный "кусок" имеет дело с определенной темой или функциональностью. Это все, что вам нужно знать, чтобы начать.
-
Класс полезен, потому что он позволяет вам организовать свой код на очень высоком уровне таким образом, чтобы вам было легче понять, использовать и поддерживать.
- Когда кто-то написал много функций и организовал их во многих классах, и заставил их работать вместе каким-то крутым способом, они объединяют все это вместе и называют его "Framework" .
- Рамка - это только самый высокий уровень "chunking" (включая стиль и условные обозначения), которые согласны с одним или несколькими людьми, потому что им нравится, как организовывается код, и подходит им стиль работы, предпочтения, ценности, планы мирового господства и т.д.