W3docs

PHP String

Aprende cómo funcionan las cadenas en PHP - creación, comillas, heredoc/nowdoc, secuencias de escape, concatenación y las funciones de cadena más usadas.

Una cadena en PHP es una secuencia de caracteres - texto como un nombre, una frase o un documento HTML completo. Las cadenas son uno de los tipos de datos más utilizados en PHP, y el lenguaje incluye una gran biblioteca de funciones para buscar, reemplazar, formatear y transformarlas.

Esta página cubre cómo crear cadenas, la diferencia entre comillas simples y dobles, secuencias de escape, cómo unir cadenas y las funciones de cadena que usarás con más frecuencia.

Crear una cadena

Puedes escribir un literal de cadena usando comillas simples (') o comillas dobles ("):

<?php
$greeting = 'Hello';
$name     = "World";

echo $greeting; // Hello
?>

Para texto más largo o complejo, PHP también ofrece la sintaxis heredoc y nowdoc, descritas a continuación.

Comillas simples vs. comillas dobles

Esta es la distinción más importante que debes aprender desde el principio. Las cadenas entre comillas dobles interpretan variables y secuencias de escape; las de comillas simples no lo hacen.

<?php
$name = "Alice";

echo "Hello, $name\n"; // Hello, Alice  (then a newline)
echo 'Hello, $name\n'; // Hello, $name\n  (printed literally)
?>

En la versión con comillas dobles, $name se reemplaza por su valor y \n se convierte en un salto de línea real. En la versión con comillas simples, ambos se imprimen exactamente como se escribieron.

Las comillas simples son ligeramente más rápidas y seguras cuando no deseas interpolación, así que úsalas para literales simples y cambia a comillas dobles solo cuando necesites una variable o una secuencia de escape dentro de la cadena.

Interpolación con llaves

Cuando una variable va seguida de caracteres que podrían formar parte de su nombre, envuélvela en {} para que PHP sepa dónde termina el nombre:

<?php
$fruit = "apple";
echo "I ate two {$fruit}s\n"; // I ate two apples
?>

Secuencias de escape

Las secuencias de escape solo tienen significado dentro de cadenas entre comillas dobles (y heredoc):

SecuenciaSignificado
\nSalto de línea
\tTabulación
\\Barra invertida
\"Comilla doble
\$Signo de dólar (impide la interpolación)
<?php
echo "Line one\nLine two\n";
echo "Price: \$10\n"; // Price: $10
?>

Heredoc y nowdoc

Para texto de varias líneas, heredoc se comporta como una cadena entre comillas dobles (las variables se interpretan) y nowdoc se comporta como una cadena entre comillas simples (nada se interpreta).

<?php
$name = "Sam";

// Heredoc - interpolates $name
echo <<<EOT
Dear $name,
Welcome aboard!
EOT;

echo "\n---\n";

// Nowdoc - prints $name literally
echo <<<'EOT'
Dear $name,
This is shown verbatim.
EOT;
?>

El identificador de cierre (EOT en este caso) debe comenzar al principio de una línea.

Concatenación

Une cadenas con el operador punto (.). El operador .= agrega texto a una cadena existente:

<?php
$first = "John";
$last  = "Doe";

$full = $first . " " . $last;
echo $full . "\n"; // John Doe

$message = "Hello";
$message .= ", world!";
echo $message . "\n"; // Hello, world!
?>

Consulta PHP Operators para la lista completa de operadores de cadena y aritméticos.

Funciones de cadena más comunes

La biblioteca estándar de PHP incluye docenas de funciones para cadenas. Estas son las que más usarás:

<?php
$text = "Hello, World";

echo strlen($text) . "\n";              // 12  - length in bytes
echo strtoupper($text) . "\n";          // HELLO, WORLD
echo strtolower($text) . "\n";          // hello, world
echo str_replace("World", "PHP", $text) . "\n"; // Hello, PHP
echo strpos($text, "World") . "\n";     // 7  - index of first match
echo substr($text, 0, 5) . "\n";        // Hello
echo trim("  padded  ") . "|\n";        // padded|
?>
FunciónQué hace
strlen()Devuelve la longitud de la cadena
strtoupper() / strtolower()Cambia las mayúsculas/minúsculas
str_replace()Reemplaza todas las ocurrencias de una subcadena
strpos()Encuentra la posición de una subcadena (devuelve false si no existe)
substr()Extrae una parte de una cadena
trim()Elimina los espacios en blanco de ambos extremos
explode()Divide una cadena en un array
implode()Une un array en una cadena

Formato con sprintf()

Cuando necesitas control preciso sobre cómo se insertan los valores en una cadena - relleno, formato de números, alineación - usa sprintf(). Devuelve una cadena formateada (y printf() la imprime directamente):

<?php
$name  = "Alice";
$score = 92.5;

$line = sprintf("%s scored %.1f%%", $name, $score);
echo $line . "\n"; // Alice scored 92.5%
?>

El marcador %s inserta una cadena, %d un entero y %.1f un número de punto flotante redondeado a un decimal.

Acceder a caracteres individuales

Una cadena puede indexarse como un array, empezando por 0:

<?php
$word = "PHP";
echo $word[0] . "\n"; // P
echo $word[2] . "\n"; // P
?>

Qué explorar a continuación

  • PHP Strings - un tutorial más profundo sobre cómo trabajar con texto en PHP.
  • PHP Data Types - cómo encajan las cadenas junto con enteros, flotantes, arrays y más.
  • PHP Functions - escribe tus propias funciones reutilizables.

Práctica

Práctica
En PHP, ¿cuál de las siguientes funciones se puede usar para devolver una cadena formateada?
En PHP, ¿cuál de las siguientes funciones se puede usar para devolver una cadena formateada?
Was this page helpful?