Ключевое отличие: PHP - серверный язык сценариев, который имеет основную реализацию в веб-разработке. Однако его можно использовать как язык программирования общего назначения. PHP4 и PHP5 - две версии PHP. PHP4 был выпущен 22 мая 2000 года. 13 июля 2004 года был выпущен PHP5. Это было приведено в действие Zend Engine II. Это было улучшение по сравнению с PHP4 и включало различные новые функции.
PHP является открытым исходным кодом на стороне сервера, встроенный язык сценариев HTML. Он может в основном выполнять любую задачу, которую могут выполнять другие программы CGI, но в основном он используется для создания динамических веб-страниц. Его главное преимущество в том, что он совместим со многими типами баз данных. Кроме того, PHP может общаться через сети, используя IMAP, SNMP, NNTP, POP3 или HTTP.
PHP включает интерфейс командной строки и может использоваться в автономных графических приложениях. Команды PHP могут быть встроены непосредственно в исходный документ HTML, а не вызывать внешний файл для обработки данных. В документе HTML скрипт PHP заключен в специальные теги PHP. Благодаря этим тегам программист может переключаться между HTML и PHP вместо того, чтобы полагаться на большие объемы кода для вывода HTML. Кроме того, поскольку PHP выполняется на сервере, клиент не может просматривать код PHP.
13 июля 2004 года был выпущен PHP5. Это было приведено в действие Zend Engine II. Это было улучшение по сравнению с PHP4 и включало в себя различные новые функции, такие как улучшенная поддержка объектно-ориентированного программирования, расширение PHP Data Objects (PDO) и многочисленные улучшения производительности. Расширение PDO определяет легкий и согласованный интерфейс для доступа к базам данных. Позднее статическое связывание было добавлено в версии 5.3. PHP5 также был разработан для обеспечения обратной совместимости с более ранними версиями PHP и, следовательно, должен приводить к тому, что при переходе с PHP4 на PHP5 будет нарушена небольшая функциональность.
Некоторые различия между PHP4 и PHP5:
- PHP5 удалил register_globals, магические кавычки и безопасный режим. Это было связано с тем, что register_globals открыла дыры в безопасности, преднамеренно разрешая внедрение данных во время выполнения, и использование магических кавычек имело непредсказуемый характер.
- PHP4 работал на Zend Engine 1.0, а PHP5 на Zend Engine II.
- PHP5 заменил магические кавычки функцией addlashes (), чтобы экранировать символы.
- PHP4 - это скорее язык процедур, а PHP5 - объектно-ориентированный.
- В PHP5 можно объявить класс как абстрактный.
- PHP5 включает в себя статические методы и свойства.
- PHP5 представляет специальную функцию __autoload ()
- PHP5 позволяет объявить класс или метод как Final
- PHP5 вводит ряд магических методов, таких как __call, __get, __set и __toString
- В PHP5 существует 3 уровня видимости: публичный, частный и защищенный.
- PHP5 ввел исключения.
- В PHP4 все передавалось по значению, включая объекты. Тогда как в PHP5 все объекты передаются по ссылке.
- PHP5 представляет интерфейсы. Все методы, определенные в интерфейсе, должны быть открытыми.
- PHP5 вводит новый уровень ошибок, определенный как 'E_STRICT'
- PHP5 представляет новые расширения по умолчанию, такие как SimpleXML, DOM и XSL, PDO и Hash.
- PHP5 вводит новые функции.
- PHP5 вводит некоторые новые зарезервированные ключевые слова.
- PHP5 включает в себя дополнительные концепции ООП, чем php4, такие как спецификаторы доступа, наследование и т. Д.
- PHP5 включает улучшенную поддержку современных систем управления контентом.
- PHP5 включает в себя снижение потребления оперативной памяти.
- PHP5 обеспечивает повышенную защиту от использования уязвимостей в PHP-скриптах.
- PHP5 вводит более простое программирование с помощью новых функций и расширений.
- PHP5 представляет новое расширение MySQL под названием MySQLi для разработчиков, использующих MySQL 4.1 и более поздние версии.
- В PHP5 SQLite был связан с PHP.
- PHP5 представляет новое встроенное расширение SOAP для взаимодействия с веб-сервисами.
- PHP5 представляет новое расширение SimpleXML для легкого доступа и манипулирования XML как объектами PHP. Он также может взаимодействовать с расширением DOM и наоборот.
- В PHP5 значительно улучшены потоки, включая возможность доступа к низкоуровневым операциям с сокетами в потоках.