20. Языки программирования, их характеристики (PHP, Perl, JavaScript).
PHP
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста») — язык программирования, созданный для генерирования HTML-страниц на веб-сервере и работы с базами данных.
PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF. Для работы программы не требуется описывать какие-либо переменные, используемые модули, и т.п. Любая программа может начинаться непосредственно с оператора PHP.
Простейшая программа Hello world на PHP выглядит следующим образом:
<?php
echo 'Hello, world!';
?>
PHP исполняет код, находящийся внутри ограничителей, таких как <?php ?>. Всё, что находится вне ограничителей, выводится без изменений. В основном, это используется для вставки PHP-кода в HTML-документ, например так:
<html>
<head>
<title>Тестируем PHP</title>
</head>
<body>
<?php echo 'Hello, world!'; ?>
</body>
</html>
PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Обращение к переменным осуществляется с помощью символа $, за которым следует имя переменной.
Например:
$a = 'I am a'; // Запись значение в переменную $a
echo $a; // Вывод переменной $а
Perl
Язык Perl (Practical extraction and report language) – универсальный интерпретирующий язык программирования, ориентированный на работу с текстовой информацией и удобный для решения повседневных задач системного администрирования.
Язык Perl является нетипизированным, то есть в одной и той же переменной могут храниться значения различных с точки зрения типизированных языков типов (целые числа и числа с десятичной точкой, строки, ссылки и т. д.). В языке есть всего 3 типа данных: скаляры, массивы и ассоциативные массивы (хэши). Ссылки на любые объекты являются разновидностью скаляров. Такой набор типов позволяет строить структуры данных произвольной сложности путем помещения ссылки на одну структуру внутрь другой. Например, двумерный массив организуется как массив ссылок на массивы. Работа с хэшами осуществляется с помощью внутренне реализованных и оптимизированных бинарных деревьев, что резко ускоряет поиск значения внутри хэша по сравнению с поиском в массиве.
Исключительно удобной особенностью языка является автоматическое управление выделением памяти и наличие встроенного «сборщика мусора», что избавляет от типичных источников уязвимостей, связанных с переполнением буферов, и почти полностью страхует от утечек памяти.
Java Script: Общие сведения
JavaScript — это язык управления сценариями просмотра гипертекстовых страниц на стороне клиента. Основная идея JavaScript состоит в возможности изменения значений атрибутов HTML-контейнеров и свойств среды отображения в процессе просмотра HTML-страницы пользователем. Каждый HTML-контейнер — это объект, который характеризуется тройкой: свойства, методы, события.
Объекты с одинаковым набором свойств, методов и событий объединяются в классы однотипных объектов.
Свойства
Многие HTML-контейнеры имеют атрибуты. Например, контейнер якоря <A ...>...</A> имеет атрибут HREF, который превращает его в гипертекстовую ссылку:
<A HREF=intuit.htm>intuit</A>
Если рассматривать контейнер якоря <A ...>...</A> как объект, то атрибут HREF будет задавать свойство объекта "якорь". Программист может изменить значение атрибута и, следовательно, свойство объекта:
document.links[0].href="sample.htm";
Методы
В терминологии JavaScript методы объекта определяют функции изменения его свойств. Например, с объектом "документ" связаны методы open(), write(), close(). Эти методы позволяют сгенерировать или изменить содержание документа. Приведем простой пример:
function hello()
{
id=window.open("","example","width=400,height=150");
id.focus(); id.document.open();
id.document.write("<H1>Привет!</H1>");
id.document.write("<HR><FORM>");
id.document.write("<INPUT TYPE=button VALUE='Закрыть окно' ");
id.document.write("onClick='window.opener.focus();window.close();'>"); id.document.close();
}
События
Кроме методов и свойств объекты характеризуются событиями. Суть программирования на JavaScript заключается в написании обработчиков этих событий. Например, с объектом типа Button (контейнер INPUT типа button — "Кнопка") может происходить событие click, т.е. пользователь может нажать на кнопку. Для этого атрибуты контейнера INPUT расширены атрибутом обработки события click — onClick. В качестве значения этого атрибута указывается программа обработки события, которую должен написать на JavaScript автор HTML-документа:
<INPUT TYPE=button VALUE="Нажать" onClick="window.alert('Пожалуйста, нажмите еще раз');">
Размещение кода на HTML-странице
- гипертекстовая ссылка (схема URL);
- обработчик события (handler);
- вставка (контейнер SCRIPT).
URL-схема JavaScript. Для того чтобы отличить стандартный переход по протоколу HTTP от перехода, программируемого на JavaScript, разработчики языка ввели новую схему URL — javascript:
<A HREF="javascript:JavaScript_код">...</A>
<IMG SRC="javascript:JavaScript_код">
В данном случае текст "JavaScript_код" обозначает программы-обработчики на JavaScript, которые вызываются при выборе гипертекстовой ссылки в первом случае и при загрузке картинки — во втором.
Обработчики событий
Такие программы, как обработчики событий (handler), указываются в атрибутах контейнеров, с которыми эти события связаны. Например, при нажатии на кнопку происходит событие click:
<FORM><INPUT TYPE=button VALUE="Кнопка" onClick="window.alert('test');"></FORM>
Вставка (контейнер SCRIPT — принудительный вызов интерпретатора)
Контейнер SCRIPT — это развитие подстановок до возможности генерации текста документа JavaScript-кодом.
Контейнер SCRIPT выполняет две основные функции:
- размещение кода внутри HTML-документа;
- условная генерация HTML-разметки на стороне браузера.
Первая функция аналогична декларированию переменных и функций, которые потом можно будет использовать в качестве программ переходов, обработчиков событий и подстановок. Вторая — это подстановка результатов исполнения JavaScript-кода в момент загрузки или перезагрузки документа.
Размещение кода внутри HTML-документа
Код можно разместить либо в заголовке документа, внутри контейнера HEAD, либо внутри BODY