Desarrollo de aplicaciones web con PHP y MySQL
Cadenas en PHP
Sergio Sáez y José Luis Poza
© 2015 Sergio Sáez y José Luis Poza

1. El tipo string

string
Forman cadenas de texto. Hay dos formas de representar los valores literales del tipo cadena:

2. Interpretación de cadenas

<?php
$cerveza 
'Heineken';
echo 
"1. El sabor de varias $cerveza's es excelente\n";
// funciona, "'" no es un carácter válido para nombres de variables
echo "2. Tomaré algunas $cervezas\n";
// no funciona, 's' es un carácter válido para nombres de variables
echo "3. Tomaré algunas ${cerveza}s\n";
// funciona
echo "4. Tomaré algunas {$cerveza}s\n";
// funciona
?>
1. El sabor de varias Heineken's es excelente
PHP Notice:  Undefined variable: cervezas in - on line 5
2. Tomaré algunas
3. Tomaré algunas Heinekens
4. Tomaré algunas Heinekens
<?php error_reporting(E_ALL);
$frutas = array('fresa' => 'roja''banano' => 'amarillo');
echo 
"1. Un banano es " $frutas['banano'] . ".<br>\n";
// Funciona, pero no fuera de las comillas dobles
echo "2. Un banano es $frutas[banano].<br>\n";
// Funciona
echo "3. Un banano es {$frutas['banano']}.<br>\n";
// Funciona, pero PHP busca una constante llamada banano primero
// El interprete se quejará y te aleccionará al respecto
echo "4. Un banano es {$frutas[banano]}.<br>\n";
// No funciona y resulta en un error de análisis sintáctico
// echo "5. Un banano es $frutas['banano'].<br>";
?>
1. Un banano es amarillo.
2. Un banano es amarillo.
3. Un banano es amarillo.
PHP Notice: Use of undefined constant banano - assumed 'banano' in - on line 10 4. Un banano es amarillo.
<?php
error_reporting
(E_ALL);
$genial'fantástico';
$ancho3// En metros
$matriz= array(array(1,2,3), array(4,5,6));
// No funciona, imprime: Esto es { fantástico}
echo "1. Esto es { $genial}\n";
// Funciona, imprime: Esto es fantástico
echo "2. Esto es {$genial}\n";
echo 
"3. Esto es ${genial}\n";
// Funciona
echo "4. Este cuadro tiene {$ancho}00 centímetros de ancho.\n";
// Funciona
echo "5. Esto funciona: {$matriz[1][2]}";
?>
1. Esto es { fantástico}
2. Esto es fantástico
3. Esto es fantástico
4. Este cuadro tiene 300 centímetros de ancho.
5. Esto funciona: 6
\n
Nueva línea (LF o 0x0A (10) en ASCII).
\r
Retorno de carro (CR o 0x0D (13) en ASCII).
\t
Tabulador (HT o 0x09 (9) en ASCII).
\\
Barra invertida.
\$
Símbolo de dolar.
\"
Comillas dobles.

3. Cadenas en línea

<?php
$cadena
= <<<FINAL
Una cadena que tendrá
los retornos de carro
directamente en línea.
FINAL;

echo 
$cadena;
?>
Una cadena que tendrá
los retornos de carro
directamente en línea.

4. Acceso a un carácter de una cadena

<?php
// Obtener el primer carácter de una cadena
$cadena 'Esto es una prueba.';
echo 
$cadena[0] ."\n";
// Obtener el tercer carácter de una cadena
echo $cadena[2] ."\n";
// Obtener el último carácter de una cadena.
echo $cadena[strlen($cadena)-1] ."\n";
// Modificar el último carácter de una cadena
$cadena[strlen($cadena)-1] = '!';
echo 
$cadena ."\n";
?>
E
t
.
Esto es una prueba!

5. Vectores y cadenas

<?php array explode (string separadorstring cadena [, int límite]) ?>
<?php
  $linea
"uno:dos:a,b,c,d:cuatro";
  
$trozosexplode(":"$linea);
  
print_r($trozos);
  
$trocitosexplode(","$trozos[2], 2);
  
print_r($trocitos);
?>
Array
(
    [0] => uno
    [1] => dos
    [2] => a,b,c,d
    [3] => cuatro
)
Array
(
    [0] => a
    [1] => b,c,d
)
<?php string implode (string separador, array piezas); ?>
<?php
  $vector
= array("primero""segundo""tercero""cuarto");
  
$cadenaimplode(", "$vector);
  echo 
$cadena;
?>
primero, segundo, tercero, cuarto

6. Manejo de campos de formularios

<?php string trim (string cadena [, string lista_carac] ) ?>
<?php
  
if (trim($_GET["nombre"]) == "") {
     echo 
"El campo 'nombre' está vacio";
  } 
// endif
?>