Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка PHP 2008.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.28 Mб
Скачать

Тема 2 Характеристика языка php

2.1 Принцип работы PHP

2.2 Переменные, константы, выражения

2.1 Принцип работы php

PHP составлен из двух почти независимых блоков – транслятора и интерпретатора.

Транслятор – программа, которая переводит код с одного «языка» на другой. Например, утилита, преобразующая исходный Паскаль-код на Си – транслятор.

Компилятор – это транслятор, конвертирующий код программы на языке высокого уровня в машинный код.

Интерпретатор – это утилита, которая просматривает код некоторой программы и выполняет одну её инструкцию за другой, т.е. полностью контролирует процесс исполнения.

РНР, получая на свой вход исходный код программы, в первую очередь анализирует его (в частности, проверяет синтаксис) и транслирует во внутреннее представление, которое представляет собой специальный байт-код, с которым проще будет в дальнейшем оперировать РНР. Эту фазу чаще всего и называют ошибочно компиляцией. РНР исполняет (интерпретирует) полученный байт-код. В этот момент он представляет собой классический интерпретатор.

Таким образом, РНР является интерпретатором с встроенным блоком трансляции, оптимизирующим ход интерпретации.

Преимущества интерпретатора перед классическим компилятором, состоят в следующем:

1. Упрощается обнаружение ошибок во время выполнения программы. В случае сбоя интерпретатор сразу же выведет сообщение, если что-то не так.

2. Можно не заботиться об освобождении и выделении памяти. Интерпретатор сам определит, когда та или иная переменная в программе уже не используется, и освободит память, выделенную для нее.

3. Существует возможность написать программу, которая, грубо говоря, будет формировать и тут же исполнять другую программу. В частности, можно формировать идентификаторы во время исполнения программы, создавать массивы анонимных функций и т.д.

4. Не нужно думать о типах переменных.

Недостаток (единственный!): это медлительность интерпретаторов, даже с блоками трансляции. Проигрыш заметен в случае больших и сложных циклов, при обработке большого количества строк и т.д.

Примеры PНР-программ:

Первый вариант

<?

print ”Привет!”

?>

Второй вариант

<body>

Привет!

</body>

Третий вариант

<html>

<body>

<h1> Привет!</h1>

<?

//Вычисляем текущую дату в формате «день.месяц.год»

$dat=date(”d.m.y”);

$tm=date(”h:i:s”); //Вычисляем текущее время

#Выводим их

echo ”Текущая дата: $dat года <br>\n”;

echo ”Текущее время: $tm <br>\n”;

#Выводим цифры

echo ”Квадраты и кубы первых 5 натуральных чисел: <br>\n”;

for ($i=1; $i<=5; $i++)

{ echo ”<li>$i в квадрате = ”.($i*$i);

echo ”, $i в кубе =”.($i*$i*$i).”\n”;

}

?>

</body>

</html>

РНР-скрипт может не отличаться от обычного html-документа. Все, что расположено до начала РНР-кода, отображается непосредственно. Сам код сценария начинается после открывающегося тэг <? и заканчивается закрывающим ?>. Между этими двумя тэгами сам текст интерпретируется как программа, и в HTML-документ не попадает. Для вывода в программе используется оператор echo (это не функция, а конструкция языка) или print. РНР устроен так, что любой текст, который расположен вне программных блоков, ограниченных <? и ?>, выводится в браузер непосредственно, т.е. воспринимается, как вызов оператора echo.