-->
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.
|
(:
- Los sistemas de codificación de caracteres, como ASCII y UTF-8, son esenciales para representar texto en los ordenadores.
- ASCII (American Standard Code for Information Interchange) es una de las primeras codificaciones y representa los caracteres básicos en inglés, asignando un número a cada letra, número y símbolo.
- ASCII es limitado y solo soporta 128 caracteres.
- Para superar esta limitación y permitir la representación de caracteres de diferentes idiomas, se desarrollaron codificaciones como UTF-8, una versión de Unicode que es compatible con ASCII pero permite representar miles de caracteres adicionales.
- UTF-8 es muy flexible, ya que utiliza entre 1 y 4 bytes por carácter, dependiendo de la complejidad del símbolo.
- Este sistema es hoy el estándar en la web, ya que permite mostrar de forma correcta caracteres de casi todos los idiomas y símbolos especiales.
- Además de UTF-8, existen otros sistemas como ISO-8859 para caracteres latinos y UTF-16, otra forma de Unicode que usa 2 bytes por carácter, aunque es menos común en la web.
)
- En PHP, no existe un tipo carácter como en otros lenguajes.
- Sin embargo, en PHP podemos tratar una cadena como una secuencia de caracteres, que sería un array de caracteres, concepto que veremos en otro tema.
- Es muy importante ver cómo PHP ofrece una gran variedad de funciones para trabajar con cadenas de caracteres. Más información en:
Formas de Representar Strings
- En PHP, un `string` se puede representar de 4 maneras:
1. Comillas dobles: "cadena"
2. Comillas simples: 'cadena'
3. Heredoc: `<<<ETIQUETA_FIN
4. Nowdoc: `<<<'ETIQUETA_FIN'
Comillas Dobles
- En PHP, los `strings` definidos con comillas dobles interpretan ciertos caracteres especiales y variables:
- $: Permite incluir variables dentro de la cadena. Si el nombre de la variable está entre `{}`, se realiza una interpretación compleja que permite concatenar y evitar ambigüedades en los nombres de las variables.
- {}: Se usa para envolver variables y realizar una interpretación compleja, permitiendo concatenar texto o expresiones sin errores.
- \: Indica una secuencia de escape, que permite insertar caracteres especiales en la cadena. Ejemplos comunes incluyen:
- \n: Nueva línea
- \t: Tabulador horizontal
- \": Comillas dobles dentro de la cadena
- \$: Representa el símbolo de dólar sin interpretarlo como variable
|
Ejemplo de Comillas Dobles
|
|
$nombre = "Carlos";
echo "Hola, $nombre\n"; // Interpreta $nombre y hace un salto de línea
echo "Precio: \$100"; // Muestra: Precio: $100 sin interpretar el símbolo de dólar
echo "ID único: {$nombre}_001"; // Muestra: ID único: Carlos_001
|
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 una etiqueta de finalización <<<FIN y termina con la misma etiqueta FIN en una nueva línea sin espacios.
- MUY IMPORTANTE: La palabra final no debe tener ningún espacio ni tabulador antes de la etiqueta.
|
Ejemplo de Heredoc
|
|
$texto = <<<FIN
Esta es una cadena
de múltiples líneas.
Hola, $nombre.
FIN;
|
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 de tipo 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.
|
Como 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.
|
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
- Miremos el siguiente ejemplo que explicamos en clase, para ellos usaremos la función del sistema get_defined_vars(), que nos retorna un array con todas las variables disponibles