Я хотел бы изучить PHP и получить представление об ООП и процедурах. Я читал несколько других блогов и руководств о ООП и процедурных методах, но до сих пор не могу понять подход.
ООП против процедурных
- Чему я должен научиться?
- В чем разница в коде? каковы эффекты?
- Как PHP-фреймворк может помочь в ООП-подходе? (Я бы хотел изучить CodeIgniter)
- Нужна ли процедурная структура?
Я действительно хочу знать разницу в коде обоих, мое понимание ООП заключается в том, что вы создаете такой класс, и к нему можно получить доступ. (Я не знаю, правильно ли это).
Спасибо!
php
oop
procedural-programming
procedural
Pennf0lio
источник
источник
Ответы:
Предыстория: вы попросили «простое объяснение», которое предполагает:
Краткий ответ без жаргона:
Длинный ответ без жаргона:
Процедурное против ООП - это лишь один из аспектов фундаментальной проблемы компьютерного программирования: как сделать ваш код простым для понимания и легким для профессионального обслуживания . Фактически вы можете написать «процедурный» код, который следует некоторым принципам ООП, поэтому эти два понятия не обязательно противоположны.
Ваше понимание действительно возрастет, когда вы изучите другие объектно-ориентированные языки программирования , среди которых PHP - «новичок на пороге».
Вот краткий обзор того, что вы узнаете по мере накопления опыта:
Класс можно рассматривать как «фрагмент» методов и свойств.
Класс полезен, потому что он позволяет вам организовать ваш код на очень высоком уровне таким образом, чтобы вам было легко понять, использовать и поддерживать.
Смотрите также
источник
ООП - это не что иное, как шаблон проектирования. Если вы только начинаете, изучите основы, сосредоточившись на процедурном подходе. Самое главное, познакомьтесь с основными принципами, такими как циклы, условия и вызов других процедур.
Создавая процедурный код, возьмите за привычку добавлять связанные методы в один исходный файл. Научитесь разделять свои процедуры на логические единицы, и тогда вы уже начинаете становиться объектно-ориентированными. По сути, объект - это не что иное, как набор методов, связанных друг с другом просто потому, что они работают с одним и тем же набором данных. (Не говоря уже о базах данных, а о данных приложения!)
OO в основном используется для того, чтобы сделать ваш код более логичным, разделив все на простые блоки. Объединив правильные блоки, вы получите законченное приложение. OO - это не серебряная пуля или золотой молоток, который решит все ваши проблемы. Но то, что он делает, упрощает понимание вашего кода.
С другой стороны, некоторым людям все же удается испортить объекты, просто превратив их в огромные суперобъекты с помощью сотен методов. Такие объекты мало чем отличаются от обычного процедурного подхода просто из-за огромного количества методов, которые комбинируются вместе без какой-либо реальной логики. Это ошибка, которую легко сделать, когда люди начинают выполнять ООП слишком быстро.
источник
Вы должны изучить оба. Объекты - это лишь одна из многих возможных существующих абстракций, а абстракция - это, в конечном счете, все, что касается программирования. Тем не менее, начните с процедурных вещей, а затем добавляйте объекты позже, потому что внутреннее устройство объектов PHP в любом случае является процедурным.
Что касается фреймворков; сначала выучите основы языка, напишите одноразовые экспериментальные программы и тому подобное. Позже вы можете ознакомиться с рамками и рассмотреть себя ли вы найти некоторые из них полезны в определенном контексте. Они определенно не являются обязательными.
источник
Чтобы добавить отличные ответы выше. Вы должны рассматривать ООП как естественное развитие вашего стиля кодирования - когда вы начинаете писать небольшую программу, вам может потребоваться просто собрать пару строк кода php, затем сгруппировать их в функции, и чем больше функций вы напишете, вы можете почувствовать необходимость чтобы лучше организовать их в классы. ООП просто позволит вам лучше структурировать ваши коды, что позволит лучше обслуживать код.
источник
Процедурный php и oop используют один и тот же код php. Тогда единственная разница в том, что с процедурой вы сосредотачиваетесь на одной задаче, и все. В oop вы организуете свой код, используя шаблоны или фрагменты, которые можно повторно использовать во многих различных областях кода.
Простой ответ заключается в том, что вам нужно знать и понимать php. Вы можете узнать об этом на php.net. Как только вы это поймете, вы можете начать систематизировать свой код по частям.
В процедурном коде используются функции, переменные.
Как только вы освоитесь, вы можете приступить к организации функций и переменных в классы. Мы начинаем вызывать функции как методы и переменные как свойства.
Удачи.
источник