1

Strtoupper: примеры (PHP)

Преобразование строк в верхний регистр с помощью strtoupper
Раздел: Работа со строками
strtoupper(string string): string
Функция strtoupper в PHP

Функция strtoupper преобразует все буквенные символы в строке к верхнему регистру. Она применяется для нормализации текстовых данных, сравнения строк без учета регистра или подготовки информации к отображению.

Аргументы функции

Функция принимает один обязательный аргумент:

  • $string (тип string) — исходная строка, которую требуется преобразовать.

Функция возвращает строку, в которой все буквенные символы алфавита приведены к верхнему регистру. Неалфавитные символы остаются без изменений.

Простые примеры использования

Базовое преобразование строки.

echo strtoupper("Hello World!");
HELLO WORLD!

Работа с кириллическими символами.

echo strtoupper("Привет, мир!");
ПРИВЕТ, МИР!

Строка содержит цифры и спецсимволы.

echo strtoupper("Test 123 #!@");
TEST 123 #!@
Похожие функции в PHP
mb_strtoupper

Функция для многобайтовых кодировок. Используется для корректной работы с Unicode (UTF-8) и другими многобайтовыми наборами символов.

echo mb_strtoupper("café", 'UTF-8');
CAFÉ

Преобразует строку в нижний регистр. Обратная операция для strtoupper.

ucfirst, ucwords

Функции для преобразования первого символа строки или каждого слова в строке к верхнему регистру.

strtoupper предпочтительнее для полного приведения строки к одному регистру. mb_strtoupper следует выбирать при работе с многобайтовыми кодировками.

Возможные ошибки

Ошибки возникают редко из-за простоты функции. Основная проблема — передача нестрокового аргумента, что приводит к предупреждению и возврату пустой строки в старых версиях PHP.

echo strtoupper(12345);
12345

Начиная с PHP 8.0, передача аргумента нестрокового типа вызывает TypeError.

echo strtoupper(null);
TypeError: strtoupper(): Argument #1 ($string) must be of type string

Использование strtoupper для строк в многобайтовых кодировках без учета этого может привести к некорректному результату для специфических символов.

Изменения в новых версиях PHP

В PHP 8.0 функция стала строго типизированной. При передаче аргумента, не являющегося строкой, выбрасывается исключение TypeError. Ранее такие аргументы преобразовывались.

До PHP 8.0:

echo strtoupper(true);
1

Начиная с PHP 8.0 этот же код вызовет ошибку типа.

Расширенные примеры
Нормализация данных для сравнения
Пример php
$userInput = "AdMiN";
$storedValue = "admin";
if (strtoupper($userInput) === strtoupper($storedValue)) {
echo "Доступ разрешен.";
}
Доступ разрешен.
Обработка элементов массива
Пример php
$colors = ["red", "green", "blue"];
$upperColors = array_map('strtoupper', $colors);
print_r($upperColors);
Array
(
[0] => RED
[1] => GREEN
[2] => BLUE
)
Генерация констант или идентификаторов
Пример php
$name = "max_items";
$constantName = strtoupper($name);
define($constantName, 100);
echo MAX_ITEMS;
100
Работа с локалью

Функция strtoupper зависит от текущей локали (setlocale). Это может влиять на преобразование символов с диакритиками.

Пример php
setlocale(LC_CTYPE, 'de_DE.UTF-8');
echo strtoupper('straße');
STRASSE

Без установки локали результат может отличаться.

Аналоги в других языках

Strtoupper в Python

Используется метод строки upper(). Он также не изменяет небуквенные символы.

print("Hello".upper())
HELLO

Strtoupper в Javascript

Применяется метод toUpperCase() для строковых объектов.

console.log("Hello".toUpperCase());
HELLO

Strtoupper в MySQL

Функция UPPER() или UCASE() выполняет аналогичное преобразование в SQL-запросах.

SELECT UPPER('hello');
HELLO

Основное отличие PHP-функции — это работа в контексте серверного языка, в то время как JavaScript выполняется на клиенте.

PHP strtoupper function comments

En
Strtoupper Make a string uppercase