Строки в PHP и работа с ними
Строки — самый частый тип данных в веб-разработке: имена пользователей, тексты статей, адреса страниц. В этой статье разберём, как создавать строки в PHP, склеивать их и обрабатывать встроенными функциями.
Как создать строку
Строку можно записать в одинарных или двойных кавычках:
<?php
$single = 'Привет, PHP!';
$double = "Привет, PHP!";
echo $single; // Вывод: Привет, PHP!
echo $double; // Вывод: Привет, PHP!
Разница проявляется, когда внутри строки есть переменные или спецсимволы. Двойные кавычки «раскрывают» переменные и понимают \n (перевод строки), \t (табуляция). Одинарные выводят всё как есть:
<?php
$lang = "PHP";
echo "Изучаем $lang\n"; // Вывод: Изучаем PHP (и перевод строки)
echo 'Изучаем $lang\n'; // Вывод: Изучаем $lang\n
Если в строке нет переменных, многие разработчики используют одинарные кавычки — так сразу видно, что строка «простая».
Конкатенация — склеивание строк
Строки соединяют оператором точка .:
<?php
$first = "Code";
$second = "Chick";
$brand = $first . $second;
echo $brand; // Вывод: CodeChick
$greeting = "Привет, " . $brand . "!";
echo $greeting; // Вывод: Привет, CodeChick!
Чтобы дописать текст в конец существующей строки, есть короткий оператор .=:
<?php
$message = "Заказ принят";
$message .= ". Ожидайте доставку.";
echo $message; // Вывод: Заказ принят. Ожидайте доставку.
Длина строки и доступ к символам
Функция strlen() возвращает длину строки в байтах, а для текста на русском нужна mb_strlen() — она считает именно символы:
<?php
$text = "Привет";
echo strlen($text); // Вывод: 12 (каждая кириллическая буква — 2 байта)
echo mb_strlen($text); // Вывод: 6
Запомните правило: для русского текста всегда используйте функции с префиксом
mb_(multibyte) —mb_strlen(),mb_strtoupper(),mb_substr().
К отдельному символу строки можно обратиться по индексу в квадратных скобках. Нумерация начинается с нуля:
<?php
$word = "PHP";
echo $word[0]; // Вывод: P
echo $word[2]; // Вывод: P
Полезные функции для работы со строками
Изменение регистра
<?php
$title = "язык php";
echo mb_strtoupper($title); // Вывод: ЯЗЫК PHP
echo mb_strtolower("КРИК"); // Вывод: крик
echo ucfirst("hello"); // Вывод: Hello
Поиск и замена
Функция str_contains() (появилась в PHP 8) проверяет, есть ли подстрока в строке, а str_replace() заменяет одно на другое:
<?php
$email = "[email protected]";
var_dump(str_contains($email, "@")); // Вывод: bool(true)
$masked = str_replace("user", "***", $email);
echo $masked; // Вывод: ***@codechick.io
Есть и родственные функции PHP 8: str_starts_with() и str_ends_with():
<?php
var_dump(str_starts_with("https://codechick.io", "https://")); // Вывод: bool(true)
var_dump(str_ends_with("photo.png", ".png")); // Вывод: bool(true)
Вырезание части строки
mb_substr() возвращает фрагмент строки: первый аргумент — строка, второй — с какого символа начать, третий — сколько символов взять:
<?php
$text = "Программирование";
echo mb_substr($text, 0, 8); // Вывод: Программ
echo mb_substr($text, 3); // Вывод: граммирование
echo mb_substr($text, -5); // Вывод: вание (отсчёт с конца)
Удаление пробелов
trim() убирает пробелы и переводы строк по краям — обязательная обработка данных из форм:
<?php
$input = " [email protected] ";
echo trim($input); // Вывод: [email protected]
Разбиение и сборка
explode() разбивает строку в массив по разделителю, implode() собирает обратно:
<?php
$csv = "PHP,JavaScript,Python";
$languages = explode(",", $csv);
print_r($languages);
// Вывод: Array ( [0] => PHP [1] => JavaScript [2] => Python )
echo implode(" | ", $languages);
// Вывод: PHP | JavaScript | Python
Сводная таблица функций
| Функция | Что делает |
|---|---|
mb_strlen() | длина строки в символах |
mb_strtoupper() / mb_strtolower() | верхний / нижний регистр |
str_contains() | проверяет наличие подстроки |
str_replace() | заменяет подстроку |
mb_substr() | вырезает фрагмент |
trim() | убирает пробелы по краям |
explode() / implode() | строка → массив и обратно |
Что мы узнали
- Строки записываются в одинарных или двойных кавычках; двойные раскрывают переменные и
\n. - Строки склеивают оператором
., а дописывают через.=. - Для русского текста используем функции с префиксом
mb_. - В PHP 8 появились удобные
str_contains(),str_starts_with(),str_ends_with(). trim(),str_replace(),mb_substr(),explode()иimplode()покрывают большинство задач со строками.
Закрепите практикой
Задачи с автоматической проверкой — решайте прямо здесь, не уходя из учебника.