Los Tipos String
- Un string es un tipo formado por una cadena de caracteres representados por un sistema determinado de codificación (ASCII, ...).
- En PHP no existe el tipo carácter, si bien una cadena es tratada internamente como un array de caracteres (concepto que ya veremos).
- En PHP hay muchas funciones para trabajar con cadenas de caracteres. Las podemos ver en la página oficial:
"Esto es una cadena de caracteres";
https://www.php.net/language.types.string
https://www.php.net/manual/es/ref.strings.php
- La resolución compleja de expresinoes simples {}, sirve para obtener el valor de la variable como si fueran paréntesis.
- Por ejemplo, imagina que queremos concatenar a una variable un carácter.En principio necesitaríamos un operador de concatenación.
|
Ejemplo
|
|
<?php
$nombre="Manuel";
$apellido="Romero";
echo "Tu identificación $nombre_$apellido"
?>
Tu identificación Romero
- Esto es por que la primera variable es $nombre_ y la segunda $apellido, que es la única que tiene valor asignado
- Para que funcione, tendríamos que concatenar
<?php
$nombre="Manuel";
$apellido="Romero";
echo "Tu identificación $nombre"."_"."$apellido"
?>
- Pero también podríamos forzar un análisis complejo de la expresión
<?php
$nombre="Manuel";
$apellido="Romero";
echo "Tu identificación {$nombre}_{$apellido}";
?>
|
- Otra utilidad es para visualizar el valor de las variables de variables (Ver apartado correspondinete)
- Vamos a ver cómo se interpretan los diferentes tipos de variables en un string:
Visualizando variables
$modulo = "Desarrollo en el servidor";
echo "<h2>Estoy estudiando $modulo </h2>";
?>
Estoy estudiando Desarrollo en el servidor
- Entero y float aporta su valor como parte del string
$nota = 9.58;
echo "<h2>Y me estudio se recompensa con una nota de $nota</h2>";
?>
Y me estudio se recompensa con una nota de 9.58
- Booleano TRUE se convierte a "1" y false a un string vacío ""
$bool1 = true;
$bool2 = false;
echo "<h2> Visualizando booleanos: true -$bool1- y false -$bool2-</h2>";
?>
Visualizando booleanos: true -1- y false --
$valor = null;
echo "<h2> Visualizando el valor null -$valor-</h2>";
?>
Visualizando el valor null --
- Array, Genera la palabra Array
$vector = [1,2,3,4,5];
echo "<h2> Visualizando un array -$vector-</h2>";
?>
Visualizando un array -Array-
- Objetos y recursos, Genera un error al intentar convertirlo a string. Para ello usaremos un método de tipo string que veremos en su momento
<?php
Class foo {
}
$obj = new foo();
echo "<h2> Visualizando un objeto -$obj-</h2>";
?>
- No genera salida, y en fichero de errores nos informa
[Sun Oct 04 18:18:44.431637 2020] [php7:error] [pid 998] [client ::1:35958] PHP Fatal
error: Uncaught Error: Object of class foo could not be converted to string in
/var/www/prueba/8.php:5\nStack trace:\n#0 {main}\n thrown in /var/www/prueba/8.php on
line 5
- En caso de un recurso p.e. mysqli
<?php
<?php
$con =new mysqli("localhost","root", "root");
echo "<h2> Visualizando un recurso -$con-</h2>";
- Igualmente que el caso anterior no genera salida, y en fichero de errores nos informa
[Sun Oct 04 18:24:08.426281 2020] [php7:error] [pid 7883] [client ::1:35968] PHP Fatal
error: Uncaught Error: Object of class mysqli could not be converted to string in
/var/www/prueba/8.php:3\nStack trace:\n#0 {main}\n thrown in /var/www/prueba/8.php on
line 3
|
Heredoc
- Este tipo de expresión de string es útil para especificar cadenas largas en multilíneas
- Se comporta como un string entre comillas dobles para el tema de interpretar y escapar ciertos caracterres
- Se establece con el operador <<<
- A continuación viene un identificador
- Después empieza a especificarse la cadena de caracteres
- Para finalizarla se escribe en una nueva línea el identificador
<?php
$frase = <<<FINAL
Esta es una cadena
de caracteres que se asignará
a la variable frase
y termina con la palabra
con la que hemos empezado
FINAL;
?>
- MUY IMPORTANTE: La palabra final no debe tener ningún espacio ni tabulador antes de la etiqueta.
- Esta expresión también se puede utilizar encerrando al identificador delimitador entre comillas dobles
<?php
$frase = <<<"FINAL"
Esta es una cadena
de caracteres que se asignará
a la variable frase
y termina con la palabra
con la que hemos empezado
FINAL;
NowDoc
- Es igual que heredoc , pero sin interpretar los caracteres especiales salvo \\ \.
- O sea que es como un entrecomillado sencillo
- La sintaxis es igual que la de heredoc, pero a diferencia el delimitador que se especifica al principio debe de ir entrecomillado con comillas simples
<?php
$nombre=pedro;
$frase = <<<'FINAL'
El valor de $nombre
es $nombre, pero aquí
no lo veo por que es nowdoc
FINAL;
?>
Tipos complejos
- Objetos básico en su aspecto de OOP
- Matrices o arrays muy muy utilizados
- Recursos este más que un tipo complejo es un tipo especial que hace referencia a un recurso externo referencia , como una conexión a una base de datos o como una referencia a un fichero pdf.
- Este tipo de variables las veremos más adelante
</div>
Variables de variables
https://www.php.net/manual/es/language.variables.variable.php
- Consiste en declarar el valor de una variable como otra variable.
- Imagina el sigueinte código
$fruta ="fresas";
$fresas = 25;
- Podemos hacerlo de la siguiente forma
$fruta ="fresas";
$$fruta = 25;
- En ambos casos $fresas valdrá 25
- Si declaramos una variable a variable con $$, lo que estamos haciendo es que el contenido de la variable también sea variable y contenga un valor
$asignatura="modulo"
$$nombre ="BD"; // ahora diremos que $modulo vale BD
- En el ejemplo vemos que $nombre vale módulo, si ahora asignamos un valor a $$nombre, estaremos creando una variable (el contendio de $nombre), de la variable $nombre, y ese contenido tendrá un valor ("BD")
- Aquellos contenidos a los que asignemos valores se quedarán en el espacio de nombres de variables
Los Tipos String
Definición de String
Un `string` es una cadena de caracteres representada por un sistema de codificación, como ASCII o UTF-8.
|
Formas de Representar Strings
- En PHP, un `string` se puede representar de 4 maneras:
1. **Comillas dobles**: `"cadena"`
2. **Comillas simples**: `'cadena'`
3. **Heredoc**: `<<<IDENT`
4. **Nowdoc**: `<<<'IDENT'`
Actividad: Representación de Strings
- Declara cadenas utilizando los cuatro tipos de representación y observa las diferencias.
|
Comillas Dobles
- Permiten interpretar caracteres especiales y variables.
- Los caracteres especiales más comunes son:
- `\n`: nueva línea
- `\t`: tabulador horizontal
- `\"`: comillas dobles dentro de la cadena
- `\$`: símbolo de dólar (útil para evitar la interpretación como variable)
|
Ejemplo con Comillas Dobles
|
|
$nombre = "Juan";
echo "Hola, $nombre\n"; // Imprime: Hola, Juan (y hace un salto de línea)
|
Comillas Simples
- No interpretan variables ni caracteres especiales (excepto `\\` y `\'`).
|
Ejemplo con Comillas Simples
|
|
$nombre = 'Pedro';
echo 'Hola, $nombre\n'; // Imprime literalmente: Hola, $nombre\n
|
Heredoc
- Ideal para cadenas largas o de múltiples líneas.
- Se comporta como comillas dobles (interpreta variables y caracteres especiales).
- Se define con `<<<IDENT` y termina con `IDENT` en una nueva línea sin espacios.
|
Ejemplo de Heredoc
|
|
$texto = <<<EOT
Esta es una cadena
de múltiples líneas.
Hola, $nombre.
EOT;
|
Nowdoc
- Similar a `Heredoc`, pero se comporta como comillas simples (no interpreta variables ni caracteres especiales).
- Se define como `<<<'IDENT'`.
|
Ejemplo de Nowdoc
|
|
$texto = <<<'EOT'
Esto es un ejemplo de Nowdoc.
Las variables como $nombre no se interpretan.
EOT;
|
Caracteres Especiales en Strings
- PHP incluye secuencias de escape para representar caracteres especiales:
- `\n`: nueva línea
- `\t`: tabulador
- `\$`: símbolo de dólar
- `\"`: comillas dobles
- Estos caracteres se interpretan en strings con comillas dobles y heredoc, pero no en comillas simples o nowdoc.
Actividad: Prueba de Caracteres Especiales
- Escribe un programa que imprima cadenas usando caracteres especiales.
|
Concatenación y Resolución Compleja
- La concatenación en PHP se hace con el operador `.`.
- Para incluir variables y evitar ambigüedades, usa `{}` para una resolución compleja.
|
Ejemplo de Concatenación y Resolución Compleja
|
|
$nombre = "Luis";
echo "Bienvenido, {$nombre}_123"; // Imprime: Bienvenido, Luis_123
|
Interpretación de Variables en Strings
- Variables en un string aportan su valor al texto.
- Booleanos (`true` y `false`) se convierten en `1` y `""`, respectivamente.
- `Null` se convierte en una cadena vacía.
- Objetos y recursos no se convierten directamente y generan errores.
Visualización de Variables en Strings
- Declara variables de varios tipos y visualízalas dentro de un string.
|
Resumen
- PHP permite múltiples formas de definir strings y ofrece herramientas avanzadas para manipularlos.
- Practicar con las diferentes formas de representación y las secuencias de escape ayuda a controlar mejor la salida de texto en PHP.