Класс UnicodeString
Класс UnicodeString из компонента String предоставляет
объектно-ориентированный интерфейс для работы с Unicode-строками.
Он создаётся через функцию u, принимающую исходную строку,
либо через статические методы класса. Объект неизменяемый: каждый
метод возвращает новый экземпляр UnicodeString, что позволяет
выстраивать цепочки вызовов. Класс автоматически учитывает
многобайтовую кодировку UTF-8.
Синтаксис
<?php
use Symfony\Component\String\UnicodeString;
use function Symfony\Component\String\u;
// через функцию
$res = u('abcde');
// через конструктор
$res = new UnicodeString('abcde');
?>
Пример
Давайте создадим объект и приведём строку к верхнему регистру:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use function Symfony\Component\String\u;
class ArticleController extends AbstractController
{
public function index(): Response
{
$res = u('abcde')->upper();
return new Response((string) $res);
}
}
?>
Результат выполнения кода:
"ABCDE"
Пример
Давайте выстроим цепочку методов для преобразования строки:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use function Symfony\Component\String\u;
class ArticleController extends AbstractController
{
public function index(): Response
{
$res = u(' hello world ')
->trim()
->title();
return new Response((string) $res);
}
}
?>
Результат выполнения кода:
"Hello World"
Пример
Давайте получим длину строки и найдём подстроку:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use function Symfony\Component\String\u;
class ArticleController extends AbstractController
{
public function index(): Response
{
$str = u('hello user');
$res = [
$str->length(),
(string) $str->slice(6),
$str->contains('user'),
];
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
[10, "user", true]
Смотрите также
-
функция
u,
которая создаёт объект UnicodeString -
метод
upper,
который переводит строку в верхний регистр -
метод
slice,
который вырезает часть строки -
класс
ByteString,
который работает с бинарными строками