0Pricing
PHP Academy · Урок

Теги PHP и синтаксис встраивания

Используйте открывающие и закрывающие теги PHP и сокращённый синтаксис вывода внутри HTML

«Теги PHP и синтаксис встраивания» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

Смешивание PHP и HTML

PHP был разработан для встраивания в HTML-файлы. Когда сервер обрабатывает .php-файл, выполняется всё, что находится между тегами PHP, а остальное без изменений отправляется в браузер.

Стандартные теги PHP

Стандартные открывающий и закрывающий теги PHP:

<!DOCTYPE html>
<html><body>
<?php
    $name = 'Alice';
    echo 'Hello, ' . $name;
?>
<p>This is regular HTML.</p>
<?php
    echo '<p>Back in PHP!</p>';
?>
</body></html>

Короткий тег вывода

Короткий тег вывода отображает значение без необходимости писать слово echo:

<!-- Long form -->
<h1><?php echo $pageTitle; ?></h1>

<!-- Short form (preferred in templates) -->
<h1><?= $pageTitle ?></h1>

<!-- With escaping -->
<h1><?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?></h1>

Всегда экранируйте вывод

Никогда не выводите данные, управляемые пользователем, без экранирования:

<?php
$unsafe = '<script>alert("xss")</script>';
$safe   = htmlspecialchars($unsafe, ENT_QUOTES, 'UTF-8');

// Define a helper:
function e(string $str): string {
    return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}
?>

<p><?= e($userInput) ?></p>

PHP в атрибутах HTML

Встраивайте PHP в атрибуты HTML — всегда выполняйте экранирование:

<?php
$url    = '/profile/' . $user['id'];
$active = $currentPage === 'home' ? 'active' : '';
$count  = 5;
?>

<a href="<?= htmlspecialchars($url) ?>" class="nav-link <?= $active ?>">
    Inbox <span class="badge"><?= $count ?></span>
</a>

Избегайте коротких тегов

Короткие открывающие теги (знак «меньше» ? без php) НЕ рекомендуются — они зависят от настройки php.ini и конфликтуют с XML. Всегда используйте полный открывающий тег или короткую форму вывода:

<?php
// These are the safe, portable forms:
// <?php echo $name; ?>    — full form
// <?= $name ?>            — short echo (always enabled 5.4+)

// The short open tag <? is different and unreliable
// Do not use it in code intended for multiple environments.

Условные выражения в шаблонах

Используйте непосредственно в шаблонах тернарное выражение или оператор объединения с null:

<?php
$role = 'admin';
$loggedIn = true;
?>

<nav>
    <?= $loggedIn ? 'Welcome back!' : 'Please log in' ?>
    <?php if ($role === 'admin'): ?>
        <a href="/admin">Admin Panel</a>
    <?php endif; ?>
</nav>

Буферизация вывода для захвата результата

Сохраните вывод PHP и HTML в переменную с помощью буферизации вывода:

<?php
function renderCard(string $title, string $body): string {
    ob_start();
    ?>
    <div class="card">
        <h2><?= htmlspecialchars($title) ?></h2>
        <p><?= htmlspecialchars($body) ?></p>
    </div>
    <?php
    return ob_get_clean();
}

echo renderCard('PHP', 'A server-side scripting language.');

PHP_EOL для разных платформ

Используйте PHP_EOL, чтобы получить правильный символ конца строки на любой платформе:

<?php
$lines = ['Line 1', 'Line 2', 'Line 3'];
$content = implode(PHP_EOL, $lines);
file_put_contents('output.txt', $content);

// PHP_EOL = "\n" on Linux/Mac, "\r\n" on Windows
echo PHP_EOL === "\n" ? 'Unix line ending' : 'Windows line ending';

Опускание закрывающего тега

Рекомендуемый подход: не указывайте закрывающий тег PHP в конце файлов, содержащих только PHP-код. Это предотвращает случайную отправку пробельных символов перед заголовками:

<?php
// config.php — PHP only, no closing tag needed
defined('APP_KEY') or define('APP_KEY', 'secret123');
define('DB_HOST', 'localhost');
define('DB_NAME', 'myapp');

// No closing PHP tag here — prevents header issues

Несколько блоков PHP

Файл может содержать несколько блоков PHP, перемежающихся с HTML:

<?php
$items = ['Apple', 'Banana', 'Cherry'];
$count = count($items);
?>

<h2>Shopping List (<?= $count ?> items)</h2>
<ul>
<?php foreach ($items as $item): ?>
    <li><?= htmlspecialchars($item) ?></li>
<?php endforeach; ?>
</ul>

Быстрая проверка

Какой синтаксис вывода PHP рекомендуется использовать для отображения переменной в шаблоне HTML?

Итоги: теги PHP и встраивание

Главное:

  • Используйте <?php ?> для блоков кода и <?= ?> для вывода
  • Всегда экранируйте вывод с помощью htmlspecialchars()
  • Не указывайте закрывающий тег в конце файлов, содержащих только PHP-код
  • Используйте буферизацию вывода для захвата отрисованного HTML
  • Используйте PHP_EOL для переносов строк, переносимых между платформами

Часто задаваемые вопросы

Урок «Теги PHP и синтаксис встраивания» бесплатный?

Да — полный текст урока «Теги PHP и синтаксис встраивания» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Теги PHP и синтаксис встраивания»?

Используйте открывающие и закрывающие теги PHP и сокращённый синтаксис вывода внутри HTML Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Теги PHP и синтаксис встраивания»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Теги PHP и синтаксис встраивания
  2. Динамический HTML с циклами PHP
  3. Подключение и обязательное подключение файлов
  4. Шаблонный подход: отделение логики от представления
← Назад к PHP Academy