простое объяснение PHP ООП против процедурного?


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

ООП против процедурного

  1. Чему я должен научиться?
  2. В чем разница в коде? каковы последствия?
  3. Как фреймворк PHP может помочь в приближении к ООП? (Я хотел бы изучить CodeIgniter)
  4. Нужна ли процедурная основа?

Я действительно хочу знайте разницу в коде обоих, мое понимание ООП заключается в том, что вы создаете класс, подобный, и он может быть доступен. (Я не знаю, правильно ли это).

Спасибо!

Author: Pennf0lio, 2009-10-07

5 answers

Справочная информация: Вы просили "простое объяснение", которое предполагает:

  1. Вам нужен серьезный обзор без жаргона
  2. Вы хотите что-то, что поможет вам учиться с самого начала
  3. Вы обнаружили, что два человека никогда не отвечают на вопрос одинаково , и это сбивает с толку. Вот почему вы здесь просите простого объяснения. Да?

Короткий Не-Жаргон Ответ:

  1. Многие вводные объяснения быстро переходят к примерам "реального мира". Это может скорее сбить с толку, чем помочь, так что не стесняйтесь пока игнорировать это.
  2. Вы можете думать об исходном коде просто как о "фрагментах" функциональности, которые просто случайно сохраняются в отдельных файлах.
  3. Существуют различные способы организации этих "блоков"; в зависимости от таких вещей, как соглашения языка программирования, опыт и подготовка разработчика(разработчиков) или просто простое старое личное предпочтение.
  4. ООП и процедурное программирование - это просто две основные, общепризнанные методологии, позволяющие организовать и упорядочить эти "куски" кода.

Длинный Ответ Без Жаргона:

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

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

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

  • Вы можете написать исходный код PHP, который выполняет полезные задачи
  • Вы можете организовать полезные задачи в "куски" кода
  • Вы можете подумайте о "кусках" кода независимо от отдельных файлов, в которых они сохранены
  • Иногда эти "куски" кода будут вести себя по-разному в зависимости от параметров, которые вы передаете
  • Фрагменты кода, которые принимают параметры, называются "Функциями"
  • Функции могут быть "разделены" вместе, и для этого существуют различные способы:
    • Например: у вас может быть только один большой PHP-файл со всеми имеющимися у вас функциями когда-либо написанный за всю вашу жизнь, перечисленный в алфавитном порядке по названию функции
    • Например: у вас может быть несколько PHP-файлов с функциями, которые разделены по тематике [например, функции для выполнения базовых операций со строками, функции для обработки массивов, функции для ввода/вывода файлов и т. Д.]
  • ООП - это особый способ "объединения" функций в "Класс"
  • Класс - это просто еще один уровень "фрагментации" кодируйте вместе, чтобы вы могли рассматривать его как единое целое
  • Класс можно рассматривать как "фрагмент" методов и свойств

    • методы это просто функции, которые логически связаны друг с другом каким-то значимым образом. Слова "метод" и "функция" - это, по сути, два разных термина для одного и того же.
    • свойства - это просто значения данных, связанные с классом. Это ценности, которые намеренно не изолированы от какой-либо отдельной функции, потому что более чем одна функций в классе должна иметь к ним доступ.
      • Например: если в вашем классе есть множество методов для занятий астрономией, свойствами класса могут быть значения определенных известных чисел, о которых должны знать все методы астрономии (например, число Пи, скорость света, расстояние между определенными планетами и т. Д.).
    • Это где большинство ООП объяснения сбивают с толку, потому что они разветвляются на " примеры из реального мира", которые могут быстро уйти от темы. Часто "реальный мир" является эвфемизмом для онтологических перспектив конкретного человека. Это, как правило, полезно только тогда, когда вы уже достаточно хорошо понимаете концепцию , чтобы научить ей кого-то другого.
    • Чтобы понять ООП без путаницы, вы можете пока пропустить примеры "реального мира" и просто сосредоточиться на коде. Класс - это просто способ хранения функций (он же методы) и свойств (он же данные) в виде кода PHP в одном или нескольких связанных "кусках" , где каждый отдельный "кусок" имеет дело с определенной темой или частью функциональности. Это все, что вам нужно знать, чтобы начать.
  • Класс полезен, потому что он позволяет организовать ваш код на очень высоком уровне таким образом, чтобы вам было легко его понимать, использовать и поддерживать.

  • Когда кто-то написал много функций, и организовал их во множество классов, и заставил их работать вместе каким-то классным способом, они упаковывают все это вместе и называют это "Фреймворком".
  • Структура - это просто следующий по величине уровень "фрагментации" (включая стиль кодирования и соглашения), с которым согласен один или несколько человек, потому что им нравится, как организован код, и он соответствует их стилю работы, предпочтениям, ценностям, планам мирового господства, и т.д.

См. также

 249
Author: dreftymac, 2018-07-17 02:55:32

ООП - это не что иное, как шаблон проектирования. Если вы только начинаете, то изучите основы, сосредоточившись на процедурном подходе. Самое главное, ознакомьтесь с основными принципами, такими как циклы, условия и вызов других процедур.

Пока вы создаете свой процедурный код, заведите привычку добавлять связанные методы в один исходный файл. Научитесь разделять свои процедуры на логические единицы, и тогда вы уже начнете становиться объектно-ориентированным. В основном, объект - это не что иное, как набор методов, связанных друг с другом просто потому, что они работают с одним и тем же набором данных. (Здесь речь идет не о базах данных, а о данных приложений!)

OO в основном используется для того, чтобы сделать ваш код более логичным, разделив все на простые блоки. Комбинируя правильные блоки, вы получаете полноценное приложение. ОО - это не серебряная пуля или золотой молоток, которые решат все ваши проблемы. Но что он действительно делает, так это облегчает ваш код понимать.

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

 19
Author: Wim ten Brink, 2009-10-07 11:26:14

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

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

 5
Author: Joonas Pulakka, 2009-10-07 10:56:33

Чтобы добавить отличные ответы выше. Вы должны рассматривать ООП как естественное развитие вашего стиля кодирования - когда вы начинаете писать небольшую программу, вам может просто понадобиться собрать пару строк php-кода, затем сгруппировать их в функции, и чем больше функций вы напишете, вы можете почувствовать необходимость лучше организовать их в классы. ООП просто позвольте вам лучше структурировать свои коды, что позволит улучшить обслуживание кода.

 5
Author: Rawdreeg, 2014-10-20 20:44:33

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

Простой ответ заключается в том, что вам нужно знать и понимать php. Вы можете изучить его по адресу php.net . Как только вы это поймете, вы сможете начать организовывать свой код в чаки.

Процедурный код использует функции, переменные.

Как только вы освоитесь, вы можете начать организовывать функции и переменные в классы. Мы начинаем вызывать функции как методы, а переменные - как свойства.

Удачи.

 5
Author: Edward Manda, 2014-10-20 21:03:21