PHP для начинающих: работа с переменными и строками

Раздел: PHP -> Основы 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('Алексей');
?>
Привет, Алексей!

PHP (язык разработки) - comments

En
язык разработки php (php)