Строка в PHP это текст в одинарных или двойных кавычках. Склеивайте строки оператором точка, $first . ' ' . $last, или подставляйте переменную прямо в двойные кавычки: "Hello, $name".
Точка склеивает любые два значения в новую строку. Числа преобразуются автоматически, поэтому "Total: " . 42 даёт "Total: 42".
Одинарные и двойные кавычки
Двойные кавычки делают две дополнительные вещи: подставляют значения переменных и превращают escape-последовательности вроде \n (перенос строки) и \t (табуляция) в соответствующие символы. Одинарные кавычки выводят текст точно как написано, кроме \' и \\.
Используйте одинарные кавычки для неизменного текста, а двойные, когда внутри нужна переменная или \n. Разница в скорости между ними слишком мала, чтобы её измерить, так что выбирайте то, с чем строка читается легче.
Конкатенация через . и .=
.= дописывает текст в конец строковой переменной. Это обычный способ собирать текст в цикле, например кусок HTML. Запустите блок, и редактор откроет вкладку Page с отрисованным списком.
Приоритет важен, когда . смешивается с арифметикой. Начиная с PHP 8, + и - связывают сильнее, чем ., поэтому "Sum: " . 2 + 3 даёт "Sum: 5". Скобки делают это очевидным для следующего читателя: "Sum: " . (2 + 3).
Переменные, массивы и объекты внутри строки
Обычная переменная внутри двойных кавычек работает сама по себе. Для элемента массива, цепочки свойств объекта или вызова метода оберните выражение в фигурные скобки. Скобки также отделяют переменную от идущих за ней букв.
Методы внутри скобок работают, обычные функции нет: последняя строка выводит скобки и имя функции вокруг значения $fruit. Вызовите функцию до строки или используйте sprintf, когда в строке много значений.
Смена регистра: strtoupper, strtolower, ucfirst, ucwords
Эти функции работают побайтно и меняют только буквы от a до z. Для текста с диакритикой, кириллицы или греческого используйте многобайтовые версии, которые понимают UTF-8:
Отдельные символы и повтор строк
К строке можно обращаться по индексу, как к массиву. Отрицательные смещения отсчитываются с конца. О подсчёте символов смотрите strlen.
Частая ошибка: + вместо .
В JavaScript + склеивает строки. В PHP + всегда арифметика: числовые строки складываются как числа, а текст, не являющийся числом, вызывает ошибку.
Если вы видите число там, где ждали склеенный текст, или ошибку Unsupported operand types: string + string, ищите +, который должен быть ..
Часто задаваемые вопросы
Как склеить строки в PHP?
Используйте оператор точка: $full = $first . ' ' . $last;. Чтобы дописать к существующей строке, используйте .=: $html .= '<li>Item</li>';. Оператор + предназначен для чисел, а "Hello" + "World" в PHP 8 выбрасывает TypeError.
Чем отличаются одинарные и двойные кавычки в PHP?
Двойные кавычки подставляют переменные и обрабатывают escape-последовательности: "Hi $name\n" выводит значение $name и перенос строки. Одинарные выводят почти всё как написано: 'Hi $name\n' выведет знак доллара, имя и обратный слеш с буквой n. Внутри одинарных кавычек экранируются только \' и \\.
Как вставить значение массива в строку PHP?
Оберните его в фигурные скобки: "Hello, {$user['name']}". Так же работают свойства объектов и вызовы методов: "{$user->getName()}". Без скобок для простого ключа работает и "$user[name]" (без кавычек вокруг ключа).
Как перевести строку в верхний или нижний регистр в PHP?
strtoupper('php') возвращает PHP, strtolower('PHP') возвращает php, ucfirst('hello') делает заглавной первую букву, а ucwords('hello world') первую букву каждого слова. Для текста с диакритикой или нелатинскими буквами используйте mb_strtoupper() и mb_strtolower().