PHP для начинающих: работа с переменными и строками
Основы языка PHP: синтаксис, переменные и вывод данных
Как написать простейший PHP скрипт для вывода текста на экран?
Наиболее распространённый подход - использование конструкции echo с двойными кавычками для интерполяции переменных. PHP-код размещается внутри тегов <?php ... ?>. Пример:
<?php
$name = 'Мир';
echo "Привет, $name!";
?>
Результат выполнения:
Привет, Мир!
Типичные ошибки: пропуск точки с запятой, использование неправильных кавычек (одинарные не интерполируют переменные), отсутствие открывающего тега PHP. Решение: всегда проверять синтаксис, использовать <? в начале файла.
Как вывести строку без интерполяции переменных?
Использование одинарных кавычек: echo 'Привет, ' . $name . '!';. Это быстрее, так как не происходит разбор строки, но требуется явная конкатенация.
<?php
$name = 'Мир';
echo 'Привет, ' . $name . '!';
?>
Привет, Мир!
Ошибка: забыть точку конкатенации между строками и переменными.
Как вывести данные с помощью короткого тега <?=?
Короткий открывающий тег <?= ... ?> эквивалентен <?php echo ... ;?>. Удобно для вывода одной переменной или выражения внутри HTML.
<?php $name = 'Мир'; ?>
<p><?= "Привет, $name!" ?></p>
<p>Привет, Мир!</p>
Проблема: короткие теги могут быть отключены в конфигурации PHP (short_open_tag). Для переносимости лучше использовать полный синтаксис.
Как вывести отформатированный текст с использованием printf?
Функция printf позволяет форматировать строку по шаблону, подставляя значения. Полезна для вывода чисел с плавающей точкой или таблиц.
<?php
$price = 19.954;
printf("Цена: %.2f руб.", $price);
?>
Цена: 19.95 руб.
Ошибка: несоответствие количества спецификаторов и аргументов, неправильный спецификатор.
Как объединить строки с использованием heredoc-синтаксиса?
Heredoc позволяет создавать многострочные строки с интерполяцией переменных без конкатенации. Открывается с помощью <<<EOT и закрывается EOT; в отдельной строке.
<?php
$name = 'Мир';
$text = <<<EOT
Привет, $name!
Это многострочный текст.
EOT;
echo $text;
?>
Привет, Мир! Это многострочный текст.
Ошибка: закрывающий идентификатор должен быть в начале строки без отступов, и после него точка с запятой. Пробелы или табуляции до идентификатора вызовут ошибку.
Расширенные примеры работы со строками и выводом в PHP
Рассмотрим сложные случаи интерполяции, использование фигурных скобок для обращения к элементам массива или свойств объектов, комбинацию с условиями, а также функции для форматирования.
Интерполяция с фигурными скобками
Если нужно вставить значение массива или объекта, а также уточнить границы переменной, применяют фигурные скобки.
<?php
$user = ['name' => 'Анна', 'age' => 25];
echo "Пользователь {$user['name']} (возраст {$user['age']})";
?>
Пользователь Анна (возраст 25)
Вывод результата функции внутри строки
<?php
echo "Сегодня " . date("d.m.Y");
?>
Сегодня 01.01.2024 (пример)
Использование sprintf для форматирования сложных данных
<?php
$format = "Книга '%s' автора %s стоит %01.2f %s";
$result = sprintf($format, 'PHP для всех', 'Иванов', 49.9, 'руб.');
echo $result;
?>
Книга 'PHP для всех' автора Иванов стоит 49.90 руб.
Nowdoc - аналог heredoc без интерполяции
<?php
$text = <<<'EOD'
Это nowdoc, переменные $name не обрабатываются.
EOD;
echo $text;
?>
Это nowdoc, переменные $name не обрабатываются.
Вывод с условным форматированием
<?php
$score = 85;
$grade = ($score >= 60) ? 'сдал' : 'не сдал';
echo "Результат: $score баллов - $grade";
?>
Результат: 85 баллов - сдал
Комбинирование echo и возврат значения
<?php
function greet($name) {
return "Привет, $name!";
}
echo greet('Алексей');
?>
Привет, Алексей!