PHP: Конкатенация

Часто строки нужно собирать из нескольких частей, например объединить имя и фамилию, добавить единицу измерения или составить текст из шаблона. Для этого используется операция конкатенации, то есть склеивания строк.

Как объединять строки

В PHP строки объединяются с помощью оператора . (точка). Для сложения чисел используется оператор +, а для объединения строк в PHP существует отдельный бинарный оператор, который означает склеивание содержимого:

<?php

print_r('Dragon' . 'stone');
// => Dragonstone

Порядок имеет значение. Сначала идет левая часть ('Dragon'), потом правая ('stone'). Результат получается в том порядке, в котором указаны операнды.

Вот как работает объединение нескольких строк. Код:

<?php

print_r('Hello' . ', ' . 'World!');

Выполнение:

'Hello' . ', ' . 'World!'
└──┬──┘   └┬┘   └──┬───┘
   └────┬───┘       │
  'Hello, '    .  'World!'
     └──────┬───────┘
      'Hello, World!'

Примеры:

<?php

print_r('Kings' . 'wood');     // => Kingswood
print_r('Kings' . 'road');     // => Kingsroad
// Здесь снаружи двойные кавычки, потому что внутри есть одиночная
print_r("King's" . 'Landing'); // => King'sLanding

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

Пробел тоже является символом

При объединении PHP не вставляет пробелы автоматически. Если между частями должен быть пробел, его нужно указать вручную:

<?php

// Пробел в конце первой строки
print_r("King's " . 'Landing'); // => King's Landing

// Пробел в начале второй строки
print_r("King's" . ' Landing'); // => King's Landing

Результат будет одинаковый. Но если пробел не добавить, то слова склеятся.

Управляющие последовательности

В строках можно использовать управляющие последовательности, например \n для переноса строки или \t для табуляции. Не забывайте, что в PHP они работают только внутри двойных кавычек. При конкатенации они ведут себя так же, как и любые другие символы:

<?php

print_r('Hello,' . "\n" . 'World!');
// =>
// Hello,
// World!

print_r('A' . "\t" . 'B');
// => A	B

Заключение

Конкатенация представляет собой объединение строк через оператор ., и строки можно объединять независимо от типа кавычек.

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

Задание

Сайт автоматически формирует ссылки на страницы пользователей, собирая их из отдельных частей. Соберите ссылку с помощью конкатенации и выведите на экран:

https://github.com/hexlet/exercises-php

Каждый компонент URL — отдельная строка: протокол, домен, имя владельца, имя репозитория.

Полезное

  • Если в редакторе есть запись // BEGIN и // END, то код нужно писать между этими строчками.

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

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