Является ли PHP объектно-ориентированным языком? Если нет, то как насчет рамки CakePHP? Является ли это объектно-ориентированной MVC-реализацией PHP?
Также может ли PHP-приложение, полностью построенное с использованием классов , называться объектно-ориентированным ?
Да, последние версии PHP объектно ориентированы. То есть вы можете сами писать классы, использовать наследование и, при необходимости, встроенные функции также встроены в объекты (например, функции MySQL).
Тем не менее, все еще есть много свободных функций, поэтому могут возникнуть разногласия по поводу того, как объектно-ориентированный PHP. Я думаю, что это. И да CakePHP – это объектно-ориентированная структура.
Нет, PHP не является полностью объектно-ориентированным языком.
И ни один из них не является C ++ или Java, потому что все они имеют примитивные типы (и PHP также имеет огромную коллекцию функций типа str_replace()
и is_*()
, которые явно процедурные по своей природе). Только чистый объектно-ориентированный язык, который я знаю, – это Ruby и Scala (и можно утверждать, что последнее больше нацелено на функциональную парадигму программирования).
PHP – это то, что можно назвать «объектно-совместимым языком».
Что касается кода, написанного на PHP, вы должны понимать, что только потому, что вы используете классы, это не делает его ООП. Особенно, если ваш код в основном основан на статическом классе.
Итак, если вы спросите: «CakePHP – основа OO?», Тогда ответ будет: « Нет . Самым лестным описанием для него было бы «классовое программирование» . Кодовая база заполнена статическими методами и переменными, где класс действует скорее как пространство имен. В основном CakePHP – это процедурный код, завернутый в синтаксис, который на поверхности имитирует объектно-ориентированный код.
PHP не полностью объектно ориентирован, но поддерживает некоторые функции, такие как
1) класс
2) объект
3) Конструкторы и деструкторы
4) Наследование объектов
5) Оператор разрешения масштаба (: 🙂
и многое другое. Если вы хотите изучить объектно-ориентированный php, обратитесь к ссылке ниже ссылки
Для любого языка, который будет классифицироваться как Объектно-ориентированный, ему необходимо придерживаться как минимум 3 принципов OO: Наследование, Полиморфизм и Инкапсуляция. Я не знаю PHP, и я никогда не использовал его раньше, но если он, по крайней мере, соответствует этим 3 принципам, то это OO, иначе это не так. Мое предложение – искать, как PHP поддерживает или нет, каждый принцип. Разработчики, как правило, слишком привязаны к используемому ими языку и часто ошибочны и предвзяты. Возьмем, к примеру, человека, заявляющего, что C ++ не является программным ориентиром по объектам и все же получает много больших пальцев вверх! Этот человек не мог быть дальше от истины, но его ответ кажется правильным для многих!
Таким образом, я немного поработал, и, похоже, PHP5 поддерживает эти 3 принципа!
Интересный вопрос. Но «Нет», PHP – это язык, способный к объекту, а не объектно-ориентированный, да, но CakePHP – это объектно-ориентированная платформа.
Объектно-ориентированная технология часто описывается в терминах инкапсуляции, полиморфизма и наследования . Но это только идентичность. Если объектно-ориентированная технология должна быть успешной, она должна акцентировать внимание на объекте.
объекты – пакет, содержащий данные и процедуры
методы – предоставление услуг
message – запрос на выполнение метода
class – шаблон для создания объектов
instance – объект, принадлежащий классу
инкапсуляция – скрытие информации, поддерживаемая объектами
наследование – механизм, позволяющий повторно использовать спецификации класса
иерархия классов – древовидная структура, представляющая отношения наследования
полиморфизм – скрыть различные реализации за общим интерфейсом
[ Алан Кэйс ] [4] [ "Considered by some to be the father of object-oriented programming"
] Defination:
EverythingIsAnObject.
Объекты общаются путем отправки и получения сообщений (в терминах объектов).
Объекты имеют собственную память (в терминах объектов).
Каждый объект является экземпляром класса (который должен быть объектом).
Класс содержит общее поведение для своих экземпляров (в виде объектов в списке программ)
An object is defined by a triple (OID, type constructor, state) where OID is the unique object identifier, type constructor is its type (such as atom, tuple, set, list, array, bag, etc.) and state is its actual value.
Теперь ясно, что Java, C ++ и PHP нарушают правило 1? Почему bcoz int, float etc. (there are a total of eight primitive types).
поэтому он не может быть объектно ориентированным в строгом смысле, но некоторые люди считают его ООП.
Вы найдете все последние функции OOP в PHP с версии 5. Перед PHP v5 появился PHP v4, который не был полностью Object Oriented.
Также вы найдете много новых и продвинутых фреймворков, таких как:
Эти рамки имеют несколько отличных функций и действительно мощные в истинном смысле, а некоторые также удобны для программистов.
Некоторые заметные моменты: –
Надеюсь, поможет.
PHP объектно-ориентирован. CakePHP – объектно-ориентированная среда MVC. PHP-приложение, построенное с использованием классов, можно назвать объектно-ориентированным.