Операции конкатенации строк в PHP

Источник: «All String Concatenations in PHP»
Операции конкатенации строк в PHP: 5 способов склеивания строк! Оператор конкатенации ., интерполяция строк, короткое присваивание, implode() и str_replace()

В PHP конкатенация строк — распространённая операция, используемая для объединения нескольких строк в одну. В PHP не менее четырёх способов объединения нескольких строк в одну. У каждого из них своё применение, адаптированное к каждому контексту, и знать их — хороший навык кодинга. В этой статье мы рассмотрим способы объединения строк в PHP, включая оператор конкатенации ., короткий оператор присваивания .=, интерполяцию строк и функцию implode().

Оператор конкатенации строк .

Оператор конкатенации строк или точка . — простой способом объединения строк в PHP. Оператор конкатенации объединяет две строки, создавая новую строку, содержащую объединённый текст. Оператор . может быть использован для объединения нескольких значений.

<?php

$string1 = "Hello";
$string2 = "world";
$string = $string1 . " " . $string2;
// Hello world

?>

Краткий оператор присваивания .=

Короткий оператор присваивания .= — частный случай оператора конкатенации строк, добавляет правый операнд к левому.

<?php

$string = "Hello";
$moreString = " world";
$existingString .= $moreString;
// Hello world

?>

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

Нет оператора для добавления строк в начало левого операнда. Обходной путь — использовать оператор конкатенации и повторить переменную.

<?php

$moreString = "Hello";
$string = " world";
$string = $moreString . $string;
// Hello world

?>

Интерполяция строк

Интерполяция строк даёт возможность встраивать переменные непосредственно в строки с двойными кавычками "...". Эта функция упрощает конкатенацию строк, автоматически анализируя переменные внутри строки. Это относится к переменным, свойствам и массивам (правда, только до одного уровня).

<?php

$moreString = "Hello";
$string = "$moreString world";
// Hello world

?>

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

Функция implode()

Функция implode() используется в для объединения элементов массива в одну строку путём конкатенации. В первый аргумент функции разделитель, представляющий собой строку, автоматически добавляемую между элементами. Используйте пустую строку, если требуется конкатенация: в противном случае используйте разделитель.

<?php

$words = array("Hello", "world");
$string = implode(" ", $words);
// Hello world

?>

implode() полезна, когда в массиве собирается произвольное количество строк, которые впоследствии нужно превращены в строку. Вместо того чтобы выполнять столько конкатенаций строк, сколько элементов в массиве (минус один), implode выполняет операцию за один приём, что экономит память и время выполнения.

Использование str_replace() для простой системы шаблонов

Ещё один подход к конкатенации строк — создание системы шаблонов с помощью str_replace(). В такой системе строка шаблона строится с заполнителями, впоследствии заменяемыми динамическим значением. Для этого подходит функция str_replace(). str_replace() способна выполнять замену нескольких вхождений одновременно, делая эту операцию эффективной.

<?php

$template = "<hello>, <name>!";
$placeholders = ['<hello>', '<name>'];
$english = ['hello', 'world'];
$french = ['bonjour', 'le monde'];

$message_en = str_replace($placeholders, $english, $template);
// hello world
$message_fr = str_replace($placeholders, $french, $template);
// bonjour le monde

?>

В PHP существует ещё функции, которые можно использовать в для замены: preg_replace() — для замены на основе regex; preg_replace_callback() — для замены со сложными вычислениями; strtr() — для замены одного символа.

С годами этот подход усовершенствовался и превратился в полноценные шаблонизаторы, такие, как Twig, blade, plates и другие. Гораздо сложнее, но и требуют больше ресурсов. Иногда требуется обычная конкатенация строк.

Заключение

PHP предлагает различные методы конкатенации строк, у каждого из которых особенности использования. Оператор конкатенации и интерполяция строк — это подходы из документации PHP; implode() и .= зависят от контекста, а str_replace() — последний шагом перед переходом к полноценной системе шаблонов. Экспериментируйте с этими методами, чтобы найти те, которые лучше подходят к вашему стилю кодирования и требованиям проекта. Счастливого кодирования!

Дополнительные материалы

Предыдущая Статья

PHP 8.4: что нового и дата выхода

Следующая Статья

Как скрыть полосу прокрутки (скроллбар) с помощью CSS