/
Программирование
/
Курс PHP
/

Переменные и конкатенация

PHP: Переменные и конкатенация

Ранее мы уже склеивали строки напрямую, используя конкатенацию. Теперь сделаем то же самое, но с использованием переменных. Хорошая новость: синтаксис остается тем же. Просто подставляются значения переменных.

Склеиваем две строки напрямую

<?php

$what = 'Kings' . 'road';
print_r($what); // => Kingsroad

Здесь все просто: две строки соединяются в одну. Так работает конкатенация: оператор . складывает строки, создавая новую строку.

Склеиваем строку и переменную

Если в переменной $first лежит строка "Kings", мы можем спокойно склеить ее с другой строкой:

<?php

$first = 'Kings';
$what = $first . 'road';
print_r($what); // => Kingsroad

PHP подставит значение переменной, выполнит операцию и создаст итоговую строку.

Склеиваем две переменные

Точно так же можно объединить значения двух переменных, если обе содержат строки:

<?php

$first = 'Kings';
$last = 'road';
$what = $first . $last;
print_r($what); // => Kingsroad

Можно добавлять и пробелы:

$full = $first . ' ' . $last;
print_r($full); // => Kings road
$first = 'Kings'
$last  = 'road'

$first  .  ' '  .  $last
└─┬──┘            └──┬─┘
'Kings' .  ' '  .  'road'
└─────────┬────────────┘
     'Kings road'

А что если переменная содержит число?

Попробуем так:

<?php

$age = 42;
print_r('Age: ' . $age); // => Age: 42

В PHP такой код работает: оператор . всегда склеивает строки, поэтому число автоматически преобразуется в строку. Не во всех языках так — например, в Python склеивание строки и числа приводит к ошибке, и число приходится преобразовывать явно.

То же самое касается переменных с результатами вычислений:

<?php

$price = 50 * 1.25 * 6.91; // => 431.875
print_r('Price in yuans: ' . $price); // => Price in yuans: 431.875

Автоматическое преобразование удобно, но требует внимательности: иногда в строку превращается не то, что вы ожидали. Подробнее о таком поведении мы поговорим в уроках про типы данных.

Задание

Интернет-магазин отправляет покупателю письмо после оформления заказа. Письмо генерируется автоматически на основе данных о клиенте.

Напишите программу, которая генерирует приветствие и тело письма, используя уже готовые переменные, и выводит строки на экран.

Для приветствия используйте переменные $firstName и $greeting, запятую и восклицательный знак. Для тела письма используйте переменные $intro и $info — второе предложение должно быть на новой строке.

Результат на экране:

Здравствуйте, Анна!
Спасибо за ваш заказ.
Ожидаемая дата доставки — 3 рабочих дня.

Выполните задание, используя только два print_r(). Не забудьте, что print_r() не переводит строку сам — перенос \n нужно добавить в нужные места самостоятельно.

Полезное

  • Подумайте, с какой строкой и в каком порядке нужно склеивать переменные, чтобы получить такой двухстрочный вывод тела письма.

  • Помните, что можно создать строку, которая содержит только управляющую последовательность \n. Вы можете конкатенировать эту строку с переменными для правильного форматирования текста.

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются