Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/DeclaracionesString»
De WikiEducator
(→Comillas Simples) |
|||
(5 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
+ | __NOTOC__ | ||
<!-- | <!-- | ||
====Los Tipos String==== | ====Los Tipos String==== | ||
Línea 218: | Línea 219: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | {{MRM_Actividad|Title=Probando secuencias de escape| | ||
+ | ;Realiza un programa donde pruebes los siguientes conceptos | ||
+ | #Visualiza una cadena de caracteres tanto con comillas dobles como con comillas simples | ||
+ | #Declara una variable y prueba a incluirla en las cadenas anteriores | ||
+ | #Prueba a insertar secuencias de escape en ambos tipos de cadenas (con comilla doble y comillas simples) | ||
+ | #Analiza el resultado verificando que obtienes la salida esperada | ||
+ | {{Plegable|hide|Probando comillas dobles y simples| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | //Imprimo cadenas con ambas comillas | ||
+ | //Vero que no hay ninguna diferencia | ||
+ | echo "<h2> Esto es una cadena entre comillas dobles </h2>"; | ||
+ | echo '<h2> Esto es una cadena entre comillas simples sin diferencia con la | ||
+ | anterior</h2>'; | ||
+ | |||
+ | //Declaro una variable | ||
+ | //Observo que entrecomillado doble sí que me visualiza su valor | ||
+ | // Sin embargo en entrecomillado simple no | ||
+ | //Igualmente en el primer caso interpreta la secuenca de escape \ | ||
+ | //Y en el segundo caso no | ||
+ | //En el caso de comillas simples he de escapar la comilla para usarla | ||
+ | $maxima="Que interesante es el php"; | ||
+ | echo "<h2> Valor de la variablle \$maxima <span style='color:red'>\"$maxima\"</span> | ||
+ | </h2>"; | ||
+ | echo '<h2> Valor de la variablle \$maxima <span style=\'color:red\'>\"$maxima\"</span> | ||
+ | </h2>'; | ||
+ | |||
+ | echo "<h2> Probando secuencias de escape </h2>\n"; | ||
+ | echo "<h2>Muchas, solo se perciben en el texto html generado, no en la rederización por parte del navegado</h2>\n"; | ||
+ | echo "<h2>Salto de línea \n esto en otra línea </h2>\n"; | ||
+ | echo "<h2>Tabulador \t\t esto estará separado </h2>\n"; | ||
+ | echo "<h2>Tabulador vertical \v\v esto estará más abajo </h2>\n"; | ||
+ | echo "<h2>Tabulador vertical \v\v esto estará más abajo </h2>\n"; | ||
+ | echo "<h2>Secuencia de escape \e\e a ver qué sale </h2>\n"; | ||
+ | echo "<h2>Avance de página \f \f \f para impresiones</h2>\n"; | ||
+ | echo "<h2>Ver barra invetida \\\\\\, solo veré 3 seguidas</h2>\n"; | ||
+ | echo "<h2>Ver un dólar \$ \$ \$, si no, no lo vería $</h2>\n"; | ||
+ | echo "<h2>Ver comillas \" \"</h2>\n"; | ||
+ | |||
+ | echo '<h2> Probando secuencias de escape </h2>'; | ||
+ | echo '<h2>Salto de línea \n esto en otra línea </h2>'; | ||
+ | echo '<h2>Tabulador \t\t esto estará separado </h2>'; | ||
+ | echo '<h2>Tabulador vertical \v\v esto estará más abajo </h2>'; | ||
+ | echo '<h2>Tabulador vertical \v\v esto estará más abajo </h2>'; | ||
+ | echo '<h2>Secuencia de escape \e\e a ver qué sale </h2>'; | ||
+ | echo '<h2>Avance de página \f \f \f para impresiones</h2>'; | ||
+ | echo '<h2>Ver barra invetida \\\\\\, solo veré 3 seguidas</h2>'; | ||
+ | echo '<h2>Ver un dólar \$ \$ \$, si no, no lo vería $</h2>'; | ||
+ | echo '<h2>Ver comillas \" \"</h2>'; | ||
+ | ?> | ||
+ | </source> | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | |||
--> | --> | ||
<br /> | <br /> | ||
Línea 343: | Línea 399: | ||
$nombre = "Maria" | $nombre = "Maria" | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}} | }} | ||
Línea 382: | Línea 418: | ||
}} | }} | ||
− | *La | + | *La diferenica entre comillas simples y dobles, es que en las comillas dobles se analizan los caracteres especiales especificados (todos ellos), mientras que en la comilla simple solo se analiza el caracter '''''\''''' seguido de '''''\'''''' o de la propia comilla simple <nowiki>\'</nowiki>. |
{{MRM_Definicion|Title=Secuencia de escape| | {{MRM_Definicion|Title=Secuencia de escape| | ||
*'''''\n''''' avance de línea (LF o 0x0A (10) en ASCII) | *'''''\n''''' avance de línea (LF o 0x0A (10) en ASCII) | ||
Línea 413: | Línea 449: | ||
<div class="slide"> | <div class="slide"> | ||
+ | <br /> | ||
+ | ;Vamos a hacer otro ejercicio: | ||
+ | {{MRM_Actividad|Title=Probando secuencias de escape| | ||
+ | ;Realiza un programa donde pruebes los siguientes conceptos | ||
+ | #Visualiza una cadena de caracteres tanto con comillas dobles como con comillas simples | ||
+ | #Declara una variable y prueba a incluirla en las cadenas anteriores | ||
+ | #Prueba a insertar secuencias de escape en ambos tipos de cadenas (con comilla doble y comillas simples) | ||
+ | #Analiza el resultado verificando que obtienes la salida esperada | ||
+ | {{Plegable|hide|Probando comillas dobles y simples| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | //Imprimo cadenas con ambas comillas | ||
+ | //Vero que no hay ninguna diferencia | ||
+ | echo "<h2> Esto es una cadena entre comillas dobles </h2>"; | ||
+ | echo '<h2> Esto es una cadena entre comillas simples sin diferencia con la | ||
+ | anterior</h2>'; | ||
+ | |||
+ | //Declaro una variable | ||
+ | //Observo que entrecomillado doble sí que me visualiza su valor | ||
+ | // Sin embargo en entrecomillado simple no | ||
+ | //Igualmente en el primer caso interpreta la secuenca de escape \ | ||
+ | //Y en el segundo caso no | ||
+ | //En el caso de comillas simples he de escapar la comilla para usarla | ||
+ | $maxima="Que interesante es el php"; | ||
+ | echo "<h2> Valor de la variablle \$maxima <span style='color:red'>\"$maxima\"</span> | ||
+ | </h2>"; | ||
+ | echo '<h2> Valor de la variablle \$maxima <span style=\'color:red\'>\"$maxima\"</span> | ||
+ | </h2>'; | ||
+ | |||
+ | echo "<h2> Probando secuencias de escape </h2>\n"; | ||
+ | echo "<h2>Muchas, solo se perciben en el texto html generado, no en la rederización por parte del navegado</h2>\n"; | ||
+ | echo "<h2>Salto de línea \n esto en otra línea </h2>\n"; | ||
+ | echo "<h2>Tabulador \t\t esto estará separado </h2>\n"; | ||
+ | echo "<h2>Tabulador vertical \v\v esto estará más abajo </h2>\n"; | ||
+ | echo "<h2>Tabulador vertical \v\v esto estará más abajo </h2>\n"; | ||
+ | echo "<h2>Secuencia de escape \e\e a ver qué sale </h2>\n"; | ||
+ | echo "<h2>Avance de página \f \f \f para impresiones</h2>\n"; | ||
+ | echo "<h2>Ver barra invetida \\\\\\, solo veré 3 seguidas</h2>\n"; | ||
+ | echo "<h2>Ver un dólar \$ \$ \$, si no, no lo vería $</h2>\n"; | ||
+ | echo "<h2>Ver comillas \" \"</h2>\n"; | ||
+ | |||
+ | echo '<h2> Probando secuencias de escape </h2>'; | ||
+ | echo '<h2>Salto de línea \n esto en otra línea </h2>'; | ||
+ | echo '<h2>Tabulador \t\t esto estará separado </h2>'; | ||
+ | echo '<h2>Tabulador vertical \v\v esto estará más abajo </h2>'; | ||
+ | echo '<h2>Tabulador vertical \v\v esto estará más abajo </h2>'; | ||
+ | echo '<h2>Secuencia de escape \e\e a ver qué sale </h2>'; | ||
+ | echo '<h2>Avance de página \f \f \f para impresiones</h2>'; | ||
+ | echo '<h2>Ver barra invetida \\\\\\, solo veré 3 seguidas</h2>'; | ||
+ | echo '<h2>Ver un dólar \$ \$ \$, si no, no lo vería $</h2>'; | ||
+ | echo '<h2>Ver comillas \" \"</h2>'; | ||
+ | ?> | ||
+ | </source> | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | ===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio10|Ejercicio 10: Cambiar aleatoriamente el estilo de un texto]]=== | ||
+ | |||
+ | <br /> | ||
+ | {{MRM_Actividad|Title=Ejercicio 10: Cambiar aleatoriamente el estilo de un texto| | ||
+ | *Cargar un texto con un h y color aleatorio | ||
+ | |||
+ | <nowiki> | ||
+ | <hx> style=color:#RGB>Este es el texto que debe de aparecer cambiante </hx> | ||
+ | </nowiki> | ||
+ | |||
+ | * '''''x, R,G''''' y '''''B''''' tendrán valores generados aleatoriamente siendo | ||
+ | <ul> | ||
+ | <li><strong>x</strong> un valor de 1 a 6.</li> | ||
+ | <li><strong>R</strong> un valor en hexadecimal de entre 0 y 255 (tonalidad de rojo)</li> | ||
+ | <li><strong>G</strong> un valor en hexadecimal de entre 0 y 255 (tonalidad de Verde)</li> | ||
+ | <li><strong>B</strong> un valor en hexadecimal de entre 0 y 255 (tonalidad de Azul)</li> | ||
+ | </ul> | ||
+ | }} | ||
+ | ===Concatenación === | ||
+ | *La concatenación en PHP se hace con el operador '''.''' (punto). | ||
+ | *Es importante diferenciar del operador '''+''' que usan otros legunaes como '''javascript''' o '''python ''' y que parece más intuitivo. | ||
+ | *En php no se puede, dada su naturalez de leguaje donde las expresiones tiene una representación muy importante. | ||
+ | {{MRM_Resumen|Title=PHP y las expresiones| | ||
+ | *En '''PHP''', '''las expresiones''' y '''el contexto''' determinan cómo se interpretan los valores. | ||
+ | *En '''PHP''' es un lenguaje con '''tipado dinámico''' y '''realiza conversiones automáticas''' para intentar '''adaptarse a lo que necesita la expresión'''. | ||
+ | }} | ||
+ | *Veamos el siguiente ejemplo | ||
+ | {{MRM_Actividad|Title=Curiosidades de php| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | $op1 = "10 Nieves"; | ||
+ | $op2 ="20"; | ||
+ | $rtdo = $op1+$op2; | ||
+ | echo "<h1>$op1 + $op2 = $rtdo</h1>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *Genera el siguiente resultado | ||
+ | [[archivo:suma_cadenas.png|327px]] | ||
+ | ;Prueba a establecer otros valores en los operandos (true, false, null, cadena que no empiece por números | ||
+ | }} | ||
+ | |||
+ | |||
+ | </div> | ||
+ | ===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio10.1|Ejercicio 10.1: Concatenando]]=== | ||
+ | <br /> | ||
+ | {{MRM_Actividad|Title=Ejercicio 10.1 : Concatenando| | ||
+ | |||
+ | *Declara dos variables en PHP llamadas '''$nombre''' y '''$apellido''' y asígnales tu nombre y apellido respectivamente. | ||
+ | *Utiliza la concatenación para combinar ambas variables de manera que el resultado se muestre en el siguiente formato: | ||
+ | <source lang=php> | ||
+ | nombre_apellido | ||
+ | </source> | ||
+ | }} | ||
+ | |||
+ | |||
+ | |||
+ | ===Resolución Compleja en un string=== | ||
+ | *Para incluir variables y evitar ambigüedades, usa `{}` para una resolución compleja. | ||
+ | {{MRM_Ejemplo|Title=Ejemplo de Concatenación y Resolución Compleja| | ||
+ | <source lang=php> | ||
+ | $nombre = "Luis"; | ||
+ | echo "Bienvenido, {$nombre}_123"; // Imprime: Bienvenido, Luis_123 | ||
+ | </source> | ||
+ | }} | ||
+ | |||
===Heredoc=== | ===Heredoc=== | ||
*Ideal para cadenas largas o de múltiples líneas. | *Ideal para cadenas largas o de múltiples líneas. | ||
Línea 459: | Línea 616: | ||
<div class="slide"> | <div class="slide"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
===Interpretación de Variables en Strings=== | ===Interpretación de Variables en Strings=== |
Última revisión de 23:27 12 nov 2024
Los Tipos 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.
)
Ejercicio 10.1: Concatenando
Resolución Compleja en un string
- 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
|
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.
</div>
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