|
|
|
История PHP
XML и веб-сервисы
Безопасный офис
Защита от копирования и методы ее взлома
История PHP
Корпоративная информационная система
Новое в PHP5
Основные типы данных PHP
Основы языка программирования РНР 5
Программистские байки
Торговая информационная система
|
PHP 2
PHP 3
PHP 4
PHP 5
PHP FI
В конце 1998 г. Зив и Энди проанализировали ход разработки РНР 3 и пришли к выводу, что существуют пути значительного улучшения языка, и в результате была начата разработка новой версии. Если РНР 3 разбирал сценарий строку за строкой и сразу же выполнял его, то в РНР 4 была реализована уже иная парадигма - «сначала компиляция, а потом исполнение». Наличие этапа компиляции вовсе не означает, что сценарии компилируются в машинный код - на выходе компилятор дает промежуточный байт-код, который затем интерпретируется и исполняется новым ядром РНР 4 - Zend Engine (производное от имен разработчиков: Zeev и Andi). Благодаря этому производительность РНР 4 значительно возросла, а обратная совместимость с предыдущей версией сохранилась практически полностью. Среди других улучшений можно назвать усовершенствование прикладного интерфейса расширений, введение уровня абстракции веб-сервера, обеспечившего возможность работы РНР 4 с самыми популярными веб-серверами и многое другое. Официальный выход РНР 4 состоялся 22 мая 2002 года и на сегодняшний день перешагнул 15-миллионный рубеж по количеству инсталляций.
В PHP 3 младший номер версии (средняя цифра) никогда не изменялась, т. е. все подверсии имели номер 3.0.x. Положение дел изменилось с выходом РНР 4, теперь младший номер версии стал обозначать существенные изменения в языке. Первое серьезное изменение появилось в РНР 4.1.01 - это были суперглобальные массивы, такие как $_GET и $_POST. Эти массивы доступны из функций без необходимости использования ключевого слова global. Основное назначение суперглобальных массивов - дать возможность отключить параметр regis-ter_globals. Если register_globals отключить, то интерпретатор РНР автоматически конвертирует входные переменные из адресной строки в переменные РНР, например текст "?foo=bar" в строке "http: //php. net/ ?foo=bar" будет автоматически преобразован в переменную с именем $fоо. Поскольку многие программисты попросту игнорировали необходимость тщательной проверки информации, поступающей извне, появилась масса приложений, легко уязвимых для злоумышленников. После появления суперглобальных массивов 22 апреля 2002 г. была выпущена версия РНР 4.2.0, в которой параметр register_globals уже был выключен по умолчанию. Последняя версия, имевшая существенные изменения, РНР 4.3.0, вышла 21 декабря 2002 г. В этой версии появились: интерфейс командной строки (Command Line Interface - CLI), уровень сетевого ввода-вывода (названный streams - потоки) и встроенная библиотека GD. Большинство этих изменений не очень много значили для конечного пользователя, но младший номер версии был увеличен, чтобы указать на наличие существенных изменений в ядре РНР.
|
|
|
|