W3docs

strtoupper()

La función strtoupper() en PHP convierte todas las letras minúsculas de una cadena a mayúsculas. Aprende su sintaxis, el problema con multibyte y más.

Introducción

strtoupper() convierte todas las letras minúsculas de una cadena a mayúsculas y devuelve el resultado. La cadena original no se modifica — como todas las funciones de cadena de PHP, strtoupper() devuelve una nueva cadena en lugar de modificar su argumento en el lugar.

Se utiliza cuando se necesita una salida o comparación sin distinción de mayúsculas y minúsculas: normalizar códigos de país (usUS), mostrar un encabezado en mayúsculas o comparar dos cadenas sin importar la capitalización. Esta página cubre la sintaxis, la importante advertencia sobre multibyte y las funciones relacionadas que se suelen usar junto a ella.

Sintaxis

strtoupper(string $string): string
ParteDescripción
$stringLa cadena de entrada. Obligatorio.
RetornoUna copia de $string con cada letra ASCII minúscula (az) convertida a mayúscula. Los caracteres que no son letras se devuelven sin cambios.

Un ejemplo básico

php— editable, runs on the server

Los dígitos, espacios y signos de puntuación (!) pasan sin cambios — solo las letras se convierten a mayúsculas. Nótese que $string sigue conteniendo "Hello World!"; el texto convertido vive en $uppercase.

Comparación sin distinción de mayúsculas y minúsculas

Un uso frecuente es comparar la entrada del usuario sin preocuparse por cómo fue escrita. Convierte ambos lados a mayúsculas y luego compáralos:

<?php

$input = "Yes";

if (strtoupper($input) === "YES") {
    echo "Confirmed";
} else {
    echo "Not confirmed";
}
// Confirmed

Por eso strtoupper() (y su contraparte strtolower()) aparecen con tanta frecuencia en el código de manejo de formularios y enrutamiento.

El problema con multibyte

strtoupper() trabaja a nivel de bytes y no tiene en cuenta la configuración regional para todo lo que esté fuera del ASCII puro. Solo sabe convertir az. Las letras acentuadas y no latinas se dejan tal como están:

<?php

echo strtoupper("café"); // CAFé  — the é is not converted

Para texto Unicode (cadenas UTF-8 con acentos, ñ, cirílico, griego, etc.) usa mb_strtoupper(), que comprende las codificaciones de caracteres:

<?php

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

Regla general: datos solo ASCII (códigos, slugs, etiquetas solo en inglés) → strtoupper(). Cualquier cosa que pueda contener caracteres internacionales → mb_strtoupper().

Funciones relacionadas

  • strtolower() — la inversa: convierte las letras mayúsculas a minúsculas.
  • ucfirst() — convierte a mayúscula solo el primer carácter de una cadena.
  • ucwords() — convierte a mayúscula el primer carácter de cada palabra.

Resumen

strtoupper() devuelve una copia nueva completamente en mayúsculas de una cadena ASCII y es útil para normalizar datos y realizar comparaciones sin distinción de mayúsculas y minúsculas. Para texto que pueda contener caracteres no ASCII, es preferible usar mb_strtoupper() para que las letras acentuadas y no latinas se conviertan correctamente.

Práctica

Práctica
¿Qué hace la función strtoupper de PHP?
¿Qué hace la función strtoupper de PHP?
Was this page helpful?