Коротко о развитии языка
В 1994 году Rasmus Lerdorf создает на perl набор инструментов для CGI, по названием php-tools. Cо временем переписывает на C, добавляю поддержку баз данных.
В 1995 году открывает исходный код общественности. Основной возможность языка была обработка форм, и первое название было FI(интерпретатор форм).
В 1996 php/fi — можно сказать становится языком программирования(а не только решающий определенные задачи).
В 1997 язык был протестирован, и полностью переписан. В команду разработчиков над языком добавились Andi Gutmans и Zeev Suraski.
В 1998 вышла версия php 3.0 и 10% сайтов в мире, в конце года работали на php. В тоже время php/fi — перестал поддерживаться.
В 1999 появилось новое ядро Zend Engine разработали которое Andi Gutmans и Zeev Suraski.
В 2000 вышел php 4.0 В этом же году был создан PEAR — репозиторий библиотек для php с открытым исходным кодом.
В 2003 был создан PECL — репозиторий для модулей ядра php.
в 2004 выходит 5.0. Переработана OOP, основа взята у java. Добавлены модификаторы доступа к функциям.
В 2005 появляется php 6(в разработке) Внедрение utf-16 поддержка unicod
В 2006 выходит версия 5.2
2008 Пишутся активно книги по php в том числе и по php 6, работа над которым в то время еще велась
2010 выходит 5.3 Добавилось пространство имен, константы, статические методы, магические методы. PHP 6 прекратил свое существование, признавшись что переписать ядро с поддержкой Юникода — «не возможно».
В 2012 выходит 5.4 Добавлен синтаксис для массива [], добавлены примеси(трейды), доступ к объекты при его создании, встроенный веб сервер.
В 2013 выходит 5.5. Добавлено: генераторы, list(), finaly,api для хеширования паролей.
В 2014 году выходит 5.6 Добавлено: константа может хранить массив, splat оператор(когда не известно сколько оператор в функции), распаковка массива(передаваемого функции как аргументы), оператор возведения в степень **, импорт функции и констант в пространство имен.
В 2015 выходит php 7.0 Добавлено use для группировки импорта, оператор космический корабль, добавлена типизация в функциях, возможность указывать возвращаемый тип данных, анонимные классы, исключения уровня движка(вместо фатальных ошибок)
В 2016 выходит php 7.1 Стало возможным передавать и возвращать null, возвращать тип void, добавлен псевдо тип iterable, модификаторы доступа для const в классах.
Общие знания
Транслятор — программа переводчик, котора переводит программу написанную на высокоуровневом языке, в программу написанную на низкоуровневом языке.
Транспайлеры — программа переводчик из одного языка в другой. Языки одного уровня.
Кимпилятор — частный случай транслятора, когда высокоуровневый язык транслируется в машинный код.
Интерпретатор — выполняет последовательно код, созданный транслятором(интерпретатор как вид транслятора).
JIT-компиляция — работает, не до выполнения кода, а прямо перед и во время выполнения программы, отличительная особенность отдавать на выполнение код напрямую процессору а не перерабатывать его перед отдачей процессору.
Если взять php то это интерпретируемый язык программирования.
Виды типизации
Динамическая — php относится к этому виду(динамическая слабая типизация, можно сложить переменные разных типов). Тип переменной определяется на лету.
Статическая — тип переменных определяется заранее.
Полезно знать
garbage collector — очистка мусора, из оперативной памяти. Например если нет ссылок на переменные, то значение удаляется из памяти.
Комментарии закрыты!