Модуль 4. Модуль Тема php. Введение в серверный язык программирования
Скачать 26.77 Kb.
|
Модуль 4. Тема 2. PHP. Введение в серверный язык программирования. PHP (от англ. Hypertext Preprocessor – препроцессор гипертекста) – это скриптовый язык программирования для разработки web-приложений. Поддерживается большинством хостинг-провайдеров и является одним из самых популярных средств для создания динамических сайтов. Среди сайтов использующих PHP - Википедия, Вконтакте, Facebook и др. История появления и развития языка Раньше сайты были статичны, состояли из готовых страничек, объединенных гиперссылками. Но для внесения правок в материалы или их добавления нужно было дописывать и переписывать эти страницы, что часто вело к тому, что приходилось вручную переделывать весь сайт. Затем ситуацию исправил CSS и клиентские скриптовые языки, которые позволили внести в браузер немного динамики. Появились активное меню, более сложные структуры, «всплывающие» окна и т.д. А автоматическим созданием страниц со стороны сервера занимались CGI-программы (скрипты). В 1994 году датский программист Расмус Лердорф написал набор этих самых скриптов на Perl/CGI, которые могли обрабатывать шаблоны на основе HTML-документов. В дальнейшем именно эти скрипты воплотились в интерпретатор языка программирования PHP, который позволял решать разнообразные задачи веб-приложений, а главное на нём можно было написать полноценный динамический сайт, но это было позже. А в начале Лердорф сделал несколько простых сценариев для своих нужд, которые позволяли определять, кто посещает веб-страницу. Но время шло и росла численность веб-разработчиков, которые интересовались использованием серверных сценариев для создания динамического контента. В 1995 года Расмус обнародовал первую версию PHP, которая по своей сути была набором серверных утилит и макросов. Далее летом этого же года появилась вторая версия PHP/FI 2.0 и набор утилит превратился в язык программирования PHP, который получил широкое распространение. Основным заданием этого языка была минимизация объёма создаваемого кода, необходимого для получения результата, в результате это привело к тому, что PHP стал HTML-ориентированным языком, код PHP стал встраиваться в разметку HTML. Версия PHP 3 появилась в 1997 году, благодаря израильским программистам Зеву Сураски и Энди Гатмансу, которые полностью переписали PHP и разрешили многие его проблемы, определили современный облик и стиль языка. Эту версию могли легко дописывать другие разработчики, у программистов появилась возможность писать свои собственные модули, расширяя функциональность PHP. Что позволило работать с набором баз данных и поддерживать большое количество различных API (прог. интерфейс приложения). Эта версия имела некоторые задатки объектно-ориентированного подхода, что вызвало интерес и привлекло новых пользователей языка. В 2000 году появился PHP 4 был установлен и задействован в 2,5 миллионах вебсайтов. Целью создания новой версии было улучшение модульности кода и увеличение производительности сложных приложений. Как результат новая версия содержала много крупных изменений, включая новый движок Zend Engine (от имён создателей, Зив и Энд) и это было наиболее революционное обновление во всей истории языка. Изменился способ выполнения кода: код стал читаться один раз и потом преобразовываеться во внутренний формат, а далее уже выполнялся. Это позволило использовать технологии кэширования (PHP-акселераторы), которые существенно увеличивали производительность. В настоящее время актуальной является версия PHP 5. В ней было переработано ядро языка, полностью изменены принципы ООП, которые стали во многом схожи с моделью, используемой в Java. На данный момент последней стабильной версией является PHP 5.4. Шестая версия PHP разрабатывалась с октября 2006 года. Было сделано множество нововведений, одним из основных должна была стать поддержка Юникода. Однако в марте 2010 года разработка PHP6 была признана бесперспективной из-за сложностей с поддержкой Юникода. Исходный код PHP6 перемещён на ветвь, а основной линией разработки стала версия 5.4. 3 декабря 2015 года было объявлено о выходе PHP версии 7.0.0. Новая версия основывается на экспериментальной ветви PHP, которая изначально называлась phpng (англ. PHP Next Generation «следующее поколение»), и разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. В новой версии добавлена возможность указывать тип возвращаемых из функции данных, добавлен контроль передаваемых типов для данных, а также новые операторы. 13 июня 2019 вышла версия PHP 7.4. В ядро были добавлены типизированные свойства и стрелочные функции, а также ограниченная ковариация возвращаемого типа и контравариантность типа аргумента. PHP версии 8.0 была выпущена 26 ноября 2020. Главными нововведениями стали: поддержка union-типов, JIT-компиляция и атрибуты (также известны как аннотации), также "конструкция" switch была заменена на "выражение" match и был добавлен новый оператор Nullsafe. 9 июля 2020 года Дэйл Хирт (англ. Dale Hirt), менеджер проекта PHP в Microsoft, в рассылке php.internals выпустил сообщение о том, что после выпуска версии PHP 8.0 Microsoft прекратит поддержку разработки этого языка программирования для Windows. Специалисты Microsoft занимались компиляцией бинарных версий интерпретатора для ОС Windows и тестированием их безопасности. В сообществе разработчиков PHP сообщили, что примут все необходимые меры, чтобы найти в ближайшее время альтернативный вариант для организации поддержки PHP 8.0 и выше для Windows, например, своими силами. Выражения в PHP Выражения - это краеугольный камень PHP. Почти все, что вы пишите в PHP, является выражением. Выражения являются "кирпичиками", из которых состоят PHP-программы. Под выражением в PHP понимается то, что имеет значение. Основными формами выражений являются константы и переменные. Например, если вы записываете "$a = 100", вы присваиваете '100' переменной $a: $a = 100; В приведенном примере $a - это переменная, = - это оператор присваивания, а 100 - это и есть выражения. Его значение 100. Выражением может быть и переменная, если ей сопоставлено определенное значение: $x = 7; $y = $x; В первой строке рассмотренного примера выражением является константа 7, а во второй строке - переменная $x, т.к. ранее ей было присвоено значение 7. $y = $x также является выражением. Немного более сложными примерами выражений являются функции. Например, рассмотрим следующую функцию: function funct () { return 5; } ?> Функции - это выражения, значением которых является то, что возвращает функция. Поскольку funct() возвращает 5, значением выражения 'funct()' является 5. Как правило, функции возвращают не статическое значение, а вычисленное. PHP поддерживает три типа скалярных значений: целочисленные, с плавающей точкой и строковые значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Каждый из этих типов значений может присваиваться переменной или возвращаться функцией. PHP - это язык, ориентированный на выражения и рассматривающий почти все как выражение. Вернемся к примеру, с которым мы уже имели дело: '$x = 7'. Легко заметить, что здесь присутствуют два значения - значение целочисленной константы '7' и значение переменной $x, также принимающей значение 7. Но на самом деле здесь присутствует и еще одно значение - значение самого присвоения. Само присвоение вычисляется в присвоенное значение, в данном случае - в 7. На практике это означает, что '$x = 7', независимо от того, что оно делает, является выражением со значением 7. Таким образом, запись '$y = ($x = 7)' равносильна записи '$x = 5; $y = 5;' (точка с запятой обозначает конец выражения). Поскольку операции присвоения анализируются справа налево, вы также можете написать '$y = $x = 7'. Логические выражения Логические выражения — это выражения, у которых могут быть только два значения: ложь и истина (или, что почти то же самое, 0 и 1). Однако, если говорить более строго, то абсолютно любое выражение может рассматриваться как логическое в "логическом" контексте (например, как условие для конструкции if-else). Ведь в качестве TRUE (истины) может выступать любое ненулевое число, непустая строка и т. д., а под FALSE (ложью) подразумевается все остальное. Для логических выражений справедливы все свойства логических переменных. Эти выражения чаще всего возникают при применении операторов >, < и == (равно), || (логическое ИЛИ), && (логическое И), ! (логическое НЕ) и других. Например: $a = 10 < 5; // $a = false $a = $b==1; // $a=true $a = $b >= 1&& $b <= 10; // $a = true, если $b в пределах от 1 до 10 $a = !($b || $c) && $d; // $a = true, если $b и $c ложны, а $d — истинно Как осуществляется проверка истинности той или иной логической переменной? Точно так же, как и любого логического выражения: $b = $a >= 1 && $a <= 10; // присваиваем $b значение логического выражения if($b) echo "a в нужном диапазоне значений"; Строковые выражения Строки в PHP — одни из самых основных объектов. Они могут содержать текст вместе с символами форматирования или даже бинарные данные.Определение строки в кавычках или апострофах может начинаться на одной строке, а завершаться — на другой. Вот пример строкового выражения: $a = "Это текст"; Константы в PHP Встречаются случаи, когда переменные довольно неудобно использовать для постоянного хранения каких либо определенных значений, которые не меняются в течение работы программы. Такими значениями могут быть математические константы, пути к файлам, разнообразные пароли и.т.д. Как раз для этих целей в PHP предусмотрена такая конструкция, как константа. Константой называется именованная величина, которая не изменяется в процессе выполнения программы (скрипта). В отличие от переменных, вы не можете изменять значения констант, которые были им присвоены при их объявлении. Константы удобно использовать для хранения значений, которые не должны изменяться во время работы программы. Константы могут содержать только скалярные данные (логического, целого, плавающего и строкового типов). В РНР константы определяются функцией define(). Эта функция имеет следующий формат: define ($name, $value, $case_sen), где: $name - имя константы; $value - значение константы; $case_sen - необязательный параметр логического типа, указывающий, следует ли учитывать регистр букв (true) или нет (false). Пример определения и использования констант в PHP: define("pi",3.14,true); echo pi; // Выводит 3.14 ?> Если параметр $case_sen равен true, то интерпретатор будет учитывать регистр символов при работе с константой. Обратите внимание, что константы используются без предваряющего знака $. Различия между константами и переменными: У констант нет приставки в виде знака доллара ($); Константы можно определить только с помощью функции define(), а не присваиванием значения; Константы могут быть определены и доступны в любом месте без учета области видимости; Константы не могут быть определены или аннулированы после первоначального объявления; Константы могут иметь только скалярные значения. Проверка существования констант Для проверки существования константы можно использовать функцию defined(). Данная функция возвращает true, если константа объявлена. Приведем пример: // Объявляем константу pi define("pi",3.14,true); if (defined("pi")==true) echo "Константа pi объявлена!"; // Скрипт выведет 'Константа pi объявлена!' ?> Предопределенные константы PHP В PHP существуют следующие предопределенные константы: PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки. Есть пять предопределенных констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, константа __LINE__ зависит от строки в скрипте, на которой эта константа указана. Специальные константы нечувствительны к регистру и их список приведен ниже:
|