Strtoupper: примеры (PHP)
strtoupper(string string): stringФункция strtoupper преобразует все буквенные символы в строке к верхнему регистру. Она применяется для нормализации текстовых данных, сравнения строк без учета регистра или подготовки информации к отображению.
Функция принимает один обязательный аргумент:
- $string (тип string) — исходная строка, которую требуется преобразовать.
Функция возвращает строку, в которой все буквенные символы алфавита приведены к верхнему регистру. Неалфавитные символы остаются без изменений.
Базовое преобразование строки.
echo strtoupper("Hello World!");HELLO WORLD!
Работа с кириллическими символами.
echo strtoupper("Привет, мир!");ПРИВЕТ, МИР!
Строка содержит цифры и спецсимволы.
echo strtoupper("Test 123 #!@");TEST 123 #!@
Функция для многобайтовых кодировок. Используется для корректной работы с Unicode (UTF-8) и другими многобайтовыми наборами символов.
echo mb_strtoupper("café", 'UTF-8');CAFÉ
Преобразует строку в нижний регистр. Обратная операция для strtoupper.
Функции для преобразования первого символа строки или каждого слова в строке к верхнему регистру.
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 8.0 функция стала строго типизированной. При передаче аргумента, не являющегося строкой, выбрасывается исключение TypeError. Ранее такие аргументы преобразовывались.
До PHP 8.0:
echo strtoupper(true);1
Начиная с PHP 8.0 этот же код вызовет ошибку типа.
$userInput = "AdMiN";
$storedValue = "admin";
if (strtoupper($userInput) === strtoupper($storedValue)) {
echo "Доступ разрешен.";
}Доступ разрешен.
$colors = ["red", "green", "blue"];
$upperColors = array_map('strtoupper', $colors);
print_r($upperColors);Array
(
[0] => RED
[1] => GREEN
[2] => BLUE
)
$name = "max_items";
$constantName = strtoupper($name);
define($constantName, 100);
echo MAX_ITEMS;100
Функция strtoupper зависит от текущей локали (setlocale). Это может влиять на преобразование символов с диакритиками.
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 выполняется на клиенте.