Начало программирования на PHP: от настройки среды до первого вывода
Основной способ начать работу с PHP
Как установить PHP и запустить первый скрипт?
Для быстрого старта можно установить PHP командной строки и использовать встроенный веб-сервер. Скачайте последнюю версию PHP с официального сайта php.net для своей операционной системы. Распакуйте архив в удобную папку, например C:\php.
Добавьте путь к папке php.exe в переменную окружения PATH (в Windows: Системные свойства > Переменные среды > Path > Создать). На macOS/Linux используйте пакетный менеджер: brew install php или sudo apt install php.
Проверьте установку в терминале:
php -vHtm php (html и php)
Должна появиться информация о версии. Теперь создайте файл index.php с содержимым:
<?php
echo 'Привет, мир!';
?>язык разработки php (php (язык разработки))
Запустите встроенный сервер из папки с этим файлом:
php -S localhost:8000
Custom index php (создание собственного index.php)
Откройте браузер по адресу http://localhost:8000. Вы увидите надпись «Привет, мир!».
Типичные проблемы при запуске
Ошибка: «php не является внутренней или внешней командой». Причина - путь к PHP не добавлен в PATH. Добавьте его или запускайте PHP, указывая полный путь.
Ошибка: «Не удается получить доступ к сайту» при открытии localhost:8000. Убедитесь, что порт не занят другим приложением. Используйте другой порт, например php -S localhost:8080.
Ошибка: В браузере отображается исходный код PHP. При запуске через встроенный сервер такой проблемы быть не должно. Если файл открыт напрямую (file:///index.php), сервер не обрабатывает PHP. Всегда запускайте через php -S.
Варианты начала работы с PHP
Как установить PHP в составе пакета XAMPP?
XAMPP включает PHP, Apache и MySQL. Скачайте XAMPP с apachefriends.org, установите, запустите панель управления и нажмите «Start» для Apache. Поместите файлы PHP в папку C:\xampp\htdocs (или /Applications/XAMPP/htdocs на macOS). Откройте в браузере http://localhost/index.php. Этот способ удобен для имитации реального веб-сервера.
Проблемы при использовании XAMPP
Порт 80 занят: Apache не запускается. Измените порт в конфигурации httpd.conf (Listen 8080) и перезапустите. Или завершите процесс, занимающий порт (например, Skype).
Файлы не отображаются: Убедитесь, что файл имеет расширение .php и лежит в htdocs. Проверьте, что Apache запущен.
Как запустить PHP скрипт из командной строки без сервера?
Для выполнения PHP скрипта без веб-сервера используйте команду php script.php. Создайте файл script.php с кодом:
<?php
echo "Выполнение из командной строки";
?>Page php (страница php)
Затем выполните:
php script.phpпростой php (простые примеры php)
Результат выведется в терминал. Это полезно для тестирования, написания консольных утилит и автоматизации.
Ошибка: скрипт ничего не выводит
Если команда выполняется без вывода, проверьте, что в файле есть открывающий тег <?php и нет ошибок синтаксиса. Запустите php -l script.php для проверки синтаксиса.
Как использовать встроенный сервер PHP для разработки?
Встроенный сервер запускается одной командой php -S localhost:8000. Он поддерживает маршрутизацию через файл-роутер (например router.php). Чтобы использовать его, добавьте параметр:
php -S localhost:8000 router.phpВ файле router.php можно реализовать обработку URL и отдачу статических файлов. Этот способ идеален для разработки API или небольших проектов без установки полноценного веб-сервера.
Расширенные примеры кода для начинающих
Пример 1: Работа с переменными и типами данных
PHP поддерживает различные типы данных: строки, целые числа, числа с плавающей точкой, булевы значения, массивы и объекты. Пример объявления и вывода:
<?php
$name = "Алексей";
$age = 30;
$height = 1.85;
$is_student = false;
echo "Имя: $name, Возраст: $age, Рост: $height м.";
if ($is_student) {
echo " Студент";
} else {
echo " Не студент";
}
?>Результат выполнения:
Имя: Алексей, Возраст: 30, Рост: 1.85 м. Не студент
Пример 2: Цикл for и массивы
Создайте массив чисел и выведите их квадраты с помощью цикла:
<?php
$numbers = [2, 4, 6, 8, 10];
echo "Квадраты чисел:";
for ($i = 0; $i < count($numbers); $i++) {
$square = $numbers[$i] * $numbers[$i];
echo " {$numbers[$i]}^2 = $square";
}
?>Результат:
Квадраты чисел: 2^2 = 4 4^2 = 16 6^2 = 36 8^2 = 64 10^2 = 100
Пример 3: Функции и строковые операции
Создайте функцию, которая форматирует имя и фамилию:
<?php
function formatName($firstName, $lastName) {
return ucfirst(strtolower($firstName)) . ' ' . ucfirst(strtolower($lastName));
}
$full = formatName('иВАН', 'пЕТРОВ');
echo "Отформатированное имя: $full";
?>Результат:
Отформатированное имя: Иван Петров
Пример 4: Работа с суперглобальными массивами
Получение данных из GET-запроса:
<?php
// URL: index.php?name=Мария&age=25
if (isset($_GET['name']) && isset($_GET['age'])) {
$name = htmlspecialchars($_GET['name']);
$age = (int)$_GET['age'];
echo "Привет, $name! Тебе $age лет.";
} else {
echo "Передайте параметры name и age.";
}
?>При обращении к ?name=Мария&age=25 результат:
Привет, Мария! Тебе 25 лет.
Пример 5: Чтение и запись в файл
Создайте простой счётчик посещений:
<?php
$counterFile = 'counter.txt';
if (file_exists($counterFile)) {
$count = (int)file_get_contents($counterFile);
} else {
$count = 0;
}
$count++;
file_put_contents($counterFile, $count);
echo "Число посещений: $count";
?>После каждого обновления страницы число увеличивается. Первый запуск:
Число посещений: 1
Пример 6: Обработка исключений
Попытка деления на ноль с перехватом ошибки:
<?php
function divide($a, $b) {
if ($b == 0) {
throw new Exception("Деление на ноль недопустимо");
}
return $a / $b;
}
try {
echo divide(10, 2) . "\n";
echo divide(10, 0) . "\n";
} catch (Exception $e) {
echo "Ошибка: " . $e->getMessage();
}
?>Результат:
5 Ошибка: Деление на ноль недопустимо
Пример 7: Работа с датой и временем
Вывод текущей даты в разных форматах:
<?php
echo "Сегодня: " . date('d.m.Y') . "\n";
echo "Время: " . date('H:i:s') . "\n";
echo "День недели: " . date('l');
?>Примерный вывод:
Сегодня: 20.03.2025 Время: 14:35:10 День недели: Thursday
Пример 8: Простая форма и обработка POST-запроса
HTML-форма (form.html):
<form action="process.php" method="POST">
Имя: <input type="text" name="username">
<input type="submit" value="Отправить">
</form>Файл process.php:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = trim($_POST['username'] ?? '');
if ($username !== '') {
echo "Привет, " . htmlspecialchars($username) . "!";
} else {
echo "Поле имени пусто.";
}
}
?>При вводе имени «Ольга» результат:
Привет, Ольга!