Первый PHP-скрипт
Теперь, когда на вашем рабочем компьютере установлены необходимые средства разработки для PHP, можно приступить к знакомству с самим языком PHP.
Сам по себе PHP-файл выводится целиком, как он есть, в качестве результата веб-запроса, за исключением особых фрагментов, ограниченных маркерами <?php и ?>. Текст внутри этих маркеров обрабатывается интерпретатором языка PHP. Именно внутри этих маркеров и располагается PHP-скрипт. В PHP-файле может вовсе не быть маркеров <?php, тогда всё содержимое этого PHP-файла попадёт в неизменном виде в браузер пользователя.
Давайте создадим в папке корня веб-сервера пробный PHP-файл hello.php со следующим содержимым:
<h1>Это пример PHP-программы.</h1>
Сегодняшняя дата и время — <?php echo date('d-m-Y H:i:s') ?>
В этом скрипте статическая часть страницы, находящаяся вне маркеров PHP, выводится всегда неизменно, тогда как фрагмент PHP-кода внутри маркеров выполняется на веб-сервере каждый раз, когда пользователь заходит браузером на страницу http://localhost/hello.php.
Переменные и функции
В нашем курсе по разработке веб-приложений мы не будем приводить в виде текста все нюансы языка PHP сразу, поскольку это большой объём информации, который осваивать лучше и проще на примерах. Но для начала стоит сказать несколько слов о переменных и функциях, поскольку это первое, с чем предстоит работать. Понятия переменных и функций одинаковы для любого языка.
В языке PHP, как и в любом другом языке, есть возможность создания функций и переменных. Функция — это некоторый фрагмент программы, у которого есть имя, набор входных параметров (аргументов) и, возможно, возвращаемое значение. Пример функции — date(), которую в предыдущем примере мы использовали для вывода даты. Функция date() получает через аргументы необходимый формат даты, а возвращает текстовое представление даты.
Переменная — это «ячейка» хранения данных, у которой есть имя. Переменные в PHP обозначаются знаком доллара, за которым идёт имя переменной. Например: $x = 1 – означает команду присвоить значение 1 переменной $x. Переменная, объявленная внутри функции, будет доступна только внутри этой функции. Предлагаю небольшой пример, иллюстрирующий использование переменных и функций:
<?php
// Функция myDate() принимает 1 или 2 аргумента.
// $timestamp – числовое представление даты/времени
// $type – задаёт формат даты, по умолчанию равен 'long'
// Возвращаемое значение — текстовое представление даты.
function myDate($timestamp, $type = 'long') {
$format = 'd-m-Y'; // по умолчанию формат даты — день, месяц, год
if($type == 'long') { // Если тип равен 'long', то...
$format .= ' H:i:s'; // ...добавляем к дате время
}
$result = date($format, $timestamp); // форматируем дату
return $result; // возвращаем результат в вызывающий код
}
?>
<h1>Текущее время</h1>
<?php $now = time() ?>
Раз: <?php echo myDate($now) ?><br/>
Два: <?php echo myDate($now + 1, 'long') ?><br/>
Три: <?php echo myDate($now, 'short') ?><br/>
На выходе получим примерно такую страничку:
Важные моменты, на которые следует обратить внимание:
Присваивание выполняется оператором = (одиночный знак «равно»), тогда как сравнение выполняется оператором == (двойной знак «равно»). Ошибка чаще всего допускается в условном операторе if, где обычно надо ставить двойное «равно», чтобы сравнить одно значение с другим.
Строки в PHP складываются оператором . (точка), а числовые значения — оператором +. Если попытаться соединить между собой две строки оператором +, то в результате каждая из строк сначала преобразуется в число, затем числа будут просуммированы, и это и будет результатом сложения. Оператор . (точка) складывает, или «слепляет», между собой строковые представления значений.
Для некоторых аргументов функции могут быть заданы значения по умолчанию. Есть правило: если для некоторого аргумента указано значение по умолчанию, то и для всех остальных аргументов, следующих за ним, обязано быть значение по умолчанию. В примере выше, функция myDate() вызывается с 1 или 2 аргументами. В случае с одним аргументом, для второго аргумента используется значение по умолчанию.
Задание — поэкспериментировать с приведёнными выше примерами, используя отладчик с пошаговым проходом функции. Данный пример очень прост, каждую строку его нужно понять, используя при необходимости справочную документацию PHP.