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'sLandingPHP позволяет объединять строки, даже если они записаны в разных кавычках. Главное, чтобы обе части были строками.
Пробел тоже является символом
При объединении 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, то код нужно писать между этими строчками.
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'sLandingPHP позволяет объединять строки, даже если они записаны в разных кавычках. Главное, чтобы обе части были строками.
Пробел тоже является символом
При объединении 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, то код нужно писать между этими строчками.
Ваше упражнение проверяется по этим тестам
<?php
namespace HexletBasics\Strings\Concatenation;
use HexletBasics\Exercise\TestCase;
class SolutionTest extends TestCase
{
public function test()
{
$expected = 'https://github.com/hexlet/exercises-php';
$this->assertOutput($expected);
}
}Решение учителя откроется через:
20:00
