Diferencia entre revisiones de «Plantilla:PHP/Declaraciones»
De WikiEducator
(→Tipos String) |
(→Heredoc) |
||
(34 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 2: | Línea 2: | ||
==Declaraciones== | ==Declaraciones== | ||
{{MRM_Objetivo| | {{MRM_Objetivo| | ||
− | :Una declaración es una instrucción | + | :Una declaración es una instrucción fundamental. |
− | * | + | *Aunque no realiza una acción directa, su objetivo principal es reservar memoria para el elemento declarado. |
− | + | *Permite hacer luego cosas con los elementos declarados. | |
− | *Permite hacer luego cosas con los elementos declarados | + | |
}} | }} | ||
</div> | </div> | ||
Línea 11: | Línea 10: | ||
<div class=slide> | <div class=slide> | ||
===Declaraciones=== | ===Declaraciones=== | ||
− | # | + | |
− | # | + | *Estas instrucciones sirven para declarar elementos dentro del programa que posteriormente vamos a utilizar. |
− | # | + | *En un programa se pueden declarar: |
− | # | + | #'''''variables''''' |
− | # | + | #'''''constantes''''' |
− | {{MRM_Actividad|Title= | + | #'''''subprogramas''''' (funciones, procedimientos. En terminología OO, métodos), esto lo veremos más adelante. |
− | {{MRM_Pregunta| | + | |
+ | *La forma en que se realizan las declaraciones varía según el lenguaje de programación utilizado. | ||
+ | {{MRM_Puntos clave|Title=Lenguajes de programación en función de cómo se realiza la declaración| | ||
+ | ;Lenguajes fuertemente tipados | ||
+ | :Las variables deben ser declaradas antes de usarlas. | ||
+ | :Durante la ejecución, esa variable no cambia de tipo. | ||
+ | |||
+ | <source lang=java> | ||
+ | //En un lenguaje como Java | ||
+ | int edad; | ||
+ | String nombre; | ||
+ | |||
+ | edad = 25; | ||
+ | nombre = "Manuel"; | ||
+ | </source> | ||
+ | <source lang=php> | ||
+ | //En un lenguaje como PHP | ||
+ | $edad = 25; | ||
+ | $nombre = "Manuel"; | ||
+ | </source> | ||
+ | |||
+ | ;Lenguajes débilmente tipados | ||
+ | :Los valores con los que trabaja siempre tienen un tipo. | ||
+ | :Este no ha de ser declarado antes de ser utilizado. | ||
+ | :El tipo va implícito cada vez que asignamos un valor a la variable utilizada. | ||
+ | :El tipo cambiará si asignamos un valor de otro tipo. | ||
+ | <source lang=php> | ||
+ | $a = 5; // Ahora la variable $a es de tipo entero | ||
+ | $a = "Nieves"; // Ahora la variable $a es de tipo string | ||
+ | </source> | ||
+ | }} | ||
+ | |||
+ | *El tipo de la variable se utiliza para saber cuánto espacio de memoria debe reservarse para almacenar el valor de esa variable. | ||
+ | *Por ejemplo, un entero puede necesitar 2 o 4 bytes, pero un float 8 o 15 bytes, según la precisión. | ||
+ | |||
+ | *Respecto a los tipos de variables, dependerá del lenguaje utilizado. | ||
+ | *Consideremos el lenguaje '''''php''''', como ya hemos comentado: | ||
+ | # ''entero o int'' , en PHP será de tipo '''''int''''', con valores numéricos sin decimales. | ||
+ | # ''real o float'', en PHP será de tipo '''''float''''', con valores numéricos con decimales. | ||
+ | # ''cadena_caracteres o string'', en PHP será el tipo '''''string''''', que representa cadenas de caracteres. | ||
+ | # ''booleano o boolean'', en PHP será de tipo '''''boolean''''', con valores verdadero o falso. | ||
+ | # ''null'' Corresponde a un valor que no existe o para especificar que la variable no tiene valor asignado. | ||
+ | {{MRM_Puntos clave|Title=Declaraciones que podemos realizar| | ||
+ | ;variables | ||
+ | ;constantes | ||
+ | ;funciones | ||
+ | ;clases | ||
+ | ;objetos y recursos (clases ya creadas o incluidas) | ||
+ | {{MRM_Actividad|Title=Temas posteriores| | ||
+ | Las funciones, clases y objetos los veremos en otro tema. | ||
+ | }} | ||
+ | }} | ||
+ | {{MRM_Pregunta|Title=Tener claro el concepto| | ||
* Qué es un '''''tipo de dato''''' | * Qué es un '''''tipo de dato''''' | ||
* Qué es una '''''variable''''' | * Qué es una '''''variable''''' | ||
Línea 25: | Línea 76: | ||
<div class="slide"> | <div class="slide"> | ||
<br /> | <br /> | ||
− | *Hay | + | *Hay cuestiones que son importantes tener claras. |
− | *Son temas de programación básica | + | *Son temas de programación básica. |
<!--2----------------------------------> | <!--2----------------------------------> | ||
{{MRM_Definicion| | {{MRM_Definicion| | ||
− | '''''Un tipo de dato''''' es un conjunto de valores para los cuales hay | + | '''''Un tipo de dato''''' es un conjunto de valores para los cuales hay definidas una serie de operaciones. |
+ | }} | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
<!--3----------------------------------> | <!--3----------------------------------> | ||
{{MRM_Definicion| | {{MRM_Definicion| | ||
− | '''''Una variable''''' es una posición de memoria que va almacenar algún valor de un determinado tipo, y cuyo contenido puede variar durante la ejecución de un programa | + | '''''Una variable''''' es una posición de memoria que va a almacenar algún valor de un determinado tipo, y cuyo contenido puede variar durante la ejecución de un programa. |
}} | }} | ||
</div> | </div> | ||
Línea 41: | Línea 93: | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
;PHP: '''''Tipado dinámico''''' | ;PHP: '''''Tipado dinámico''''' | ||
− | *Una | + | *Una característica semántica muy importante de PHP. |
− | {{MRM_Puntos clave|PHP es un lenguaje tipado | + | {{MRM_Puntos clave|PHP es un lenguaje tipado| |
− | * | + | *En todo momento, todo valor y variable tienen un tipo. |
− | *Podemos ver su tipo | + | *Podemos ver su tipo con funciones del lenguaje. |
− | *Los lenguajes de programación pueden ser | + | }} |
+ | *Los lenguajes de programación pueden ser más o menos exigentes en cuanto a la declaración de los tipos de las variables para poder ser usados durante la ejecución de un programa. | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | ; | + | ;Tipado dinámico |
− | *Hay lenguajes fuertemente | + | *Hay lenguajes fuertemente tipados (como Java) o débilmente tipados (como Basic). |
− | *Esto tiene que ver con el hecho de que cada variable en un momento dado tiene un tipo, y lo podemos | + | *Esto tiene que ver con el hecho de que cada variable en un momento dado tiene un tipo, y lo podemos conocer. |
− | *Esto ocurre en | + | *Esto ocurre en PHP. |
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
;Tipado dinámico | ;Tipado dinámico | ||
− | *''''' | + | *'''''PHP''''' no es estricto en el tipo de dato de una variable, en cuanto que éste puede cambiar durante su vida. |
− | *En este sentido | + | *En este sentido, PHP es un lenguaje de '''''tipado dinámico'''''. El tipo de la variable depende del valor que tiene en un momento dado o de los operadores que lo afecten. |
− | *La declaración de tipo no existe de forma explícita | + | *La declaración de tipo no existe de forma explícita. |
− | *La declaración de tipo ocurre en el momento que a una variable se le | + | *La declaración de tipo ocurre en el momento en que a una variable se le asigna un valor de un tipo nuevo. |
− | *Si le asigno un valor de otro tipo, vuelve a ocurrir una | + | *Si le asigno un valor de otro tipo, vuelve a ocurrir una declaración de tipo. |
{{MRM_Puntos clave|PHP es un lenguaje de tipado dinámico}} | {{MRM_Puntos clave|PHP es un lenguaje de tipado dinámico}} | ||
</div> | </div> | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
;Definir variables | ;Definir variables | ||
− | *En | + | *En PHP, una variable es definida la primera vez que se usa. |
− | *El tipo de la variable depende del valor que tenga asignado en un momento dado | + | *El tipo de la variable depende del valor que tenga asignado en un momento dado. |
− | *El identificador de la variable en | + | *El identificador de la variable en PHP tiene que empezar por el signo '''''$'''''. |
− | *En | + | *En PHP, las variables se representan con el signo '''''$''''' seguido de un carácter de subrayado o una letra y luego letras, números y caracteres de subrayado en cualquier orden y número. |
</div> | </div> | ||
Línea 77: | Línea 129: | ||
;PHP y variables | ;PHP y variables | ||
{{MRM_Resumen| | {{MRM_Resumen| | ||
− | # | + | # PHP es un lenguaje tipado. |
− | # | + | # PHP es de tipado dinámico. |
− | # | + | # PHP no es estricto en la declaración de variables (la declaración ocurre la primera vez que se usa). |
}} | }} | ||
</div> | </div> | ||
Línea 85: | Línea 137: | ||
<div class="slide"> | <div class="slide"> | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
− | ; | + | ;Identificador de variables |
<source lang=php> | <source lang=php> | ||
− | identificador = $[_|a | + | identificador = $[_|a-zA-Z][_a-zA-Z0-9]* |
</source> | </source> | ||
− | |||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
− | $miVariable= 8;/*Variable de tipo entero*/ | + | $miVariable = 8; /* Variable de tipo entero */ |
− | edad = 5/*Error en el identificador*/ | + | edad = 5; /* Error en el identificador */ |
− | $5edad = 5 /*Error en el identificador */ | + | $5edad = 5; /* Error en el identificador */ |
?> | ?> | ||
</source> | </source> | ||
Línea 101: | Línea 152: | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
<div class="slide"> | <div class="slide"> | ||
− | |||
===Valores y tipos de datos=== | ===Valores y tipos de datos=== | ||
http://php.net/manual/es/language.types.intro.php | http://php.net/manual/es/language.types.intro.php | ||
− | *En | + | *En PHP tenemos 8 tipos de datos: |
− | #5 tipos básicos o primitivos (un valor) | + | #5 tipos básicos o primitivos (un valor). |
#3 tipos compuestos (conjunto de valores). | #3 tipos compuestos (conjunto de valores). | ||
</div> | </div> | ||
− | |||
− | |||
<div class="slide"> | <div class="slide"> | ||
{{MRM_Actividad|Title=Tipos primitivos| | {{MRM_Actividad|Title=Tipos primitivos| | ||
#'''''boolean''''': Valores TRUE y FALSE. | #'''''boolean''''': Valores TRUE y FALSE. | ||
− | #'''''entero''''': | + | #'''''entero''''': Números enteros ... -2,-1,0,1,2 ... |
− | #'''''real''''': | + | #'''''real''''': Números reales. |
− | #'''''string''''': | + | #'''''string''''': Cadenas de caracteres. |
− | #'''''NULL''''': Valor null | + | #'''''NULL''''': Valor null. |
}} | }} | ||
</div> | </div> | ||
Línea 123: | Línea 171: | ||
<div class="slide"> | <div class="slide"> | ||
{{MRM_Actividad|Title=Tipos compuestos| | {{MRM_Actividad|Title=Tipos compuestos| | ||
− | #'''''array''''': | + | #'''''array''''': Conjunto enumerado por la clave de valores de diferente tipo. |
− | #'''''objeto''''': Instancia de una clase en memoria | + | #'''''objeto''''': Instancia de una clase en memoria. |
− | #'''''recurso''''': | + | #'''''recurso''''': Objeto que permite utilizar elementos del sistema o recursos (por ejemplo, conector a una base de datos). |
}} | }} | ||
<br /> | <br /> | ||
</div> | </div> | ||
− | |||
+ | *La función '''''gettype($variable)''''' permite ver el tipo de una variable en un momento dado. | ||
{{MRM_Actividad|Title=Ejercicio 4 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio4|Ver tipos de variable]]| | {{MRM_Actividad|Title=Ejercicio 4 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio4|Ver tipos de variable]]| | ||
− | *Asigna a una variable cada uno de los cinco tipos básicos | + | *Asigna a una variable cada uno de los cinco tipos básicos. |
− | *Después de cada asignación visualiza el tipo con la función '''''gettype()''''' | + | *Después de cada asignación visualiza el tipo con la función '''''gettype()'''''. |
+ | {{plegable|hide|Ver el código| | ||
<source lang=php> | <source lang=php> | ||
− | + | $a = 10; | |
echo "Valor de la variable \$a es $a y es de tipo ".gettype($a)."<br />"; | echo "Valor de la variable \$a es $a y es de tipo ".gettype($a)."<br />"; | ||
</source> | </source> | ||
}} | }} | ||
+ | }} | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
+ | |||
====Tipos básicos: enteros==== | ====Tipos básicos: enteros==== | ||
#'''entero '''''integer''''' ''' | #'''entero '''''integer''''' ''' | ||
− | *Posible notación decimal/octal/hexadecimal | + | *Posible notación decimal/octal/hexadecimal: |
− | decimal [1..9][0..9]* | + | - decimal [1..9][0..9]* |
− | hexadecimal 0x[0..f]+ | + | - hexadecimal 0x[0..f]+ |
− | octal | + | - octal 0o[0..7]+ (Esta notación es a partir de la versión 8 de PHP). |
− | binario 0b[01]+ | + | - binario 0b[01]+ |
− | *Todos ellos pueden ser positivos o negativos | + | *Todos ellos pueden ser positivos o negativos. |
</div> | </div> | ||
Línea 154: | Línea 206: | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
<source lang=php> | <source lang=php> | ||
− | + | $Numero = 10; | |
− | + | // Octal | |
− | + | $NumeroOctal = 067; | |
− | + | // Hexadecimal | |
− | + | $NumeroHex = 0xA56B; | |
</source> | </source> | ||
</div> | </div> | ||
− | + | {{MRM_Actividad|Title=Ejercicio 5:[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio5|Probando los tipos enteros]]| | |
− | {{MRM_Actividad|Title=Ejercicio 5:[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio5| Probando los tipos enteros]]| | + | *Haz un programa que asigne diferentes valores enteros a las variables. |
− | *Haz un programa que | + | *Realiza la asignación en distintos formatos (decimal, octal, hexadecimal y binario). |
− | *Realiza la asignación en | + | *Prueba posteriormente a visualizarlo. |
− | *Prueba | + | |
*Analiza e interpreta el resultado. | *Analiza e interpreta el resultado. | ||
}} | }} | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
;integer | ;integer | ||
− | *Al imprimirlos con print los veré con valor decimal | + | *Al imprimirlos con `print`, los veré con valor decimal. |
− | *Para verlos en otras | + | *Para verlos en otras bases, hay que usar `printf` o `format` o utilizar las funciones de conversión (`decbin`, `dechex`, `octdec`), que veremos en otro apartado. |
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | {{MRM_Actividad|Title = Ejercicio | + | {{MRM_Actividad|Title=Ejercicio 6 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio6|Funciones de conversión 1]]| |
− | *Usa las | + | *Usa las funciones especificadas anteriormente (`decbin`, `dechex`, `decoct`) para visualizar un número en los diferentes formatos numéricos. |
− | * | + | *Muestra el valor original y el convertido. |
+ | *En el primer caso, muestra el tipo del valor que retorna la función usada. | ||
}} | }} | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
− | ==== | + | |
− | + | ====real o coma flotante '''''float'''''==== | |
− | + | ||
− | + | ||
<source lang=php> | <source lang=php> | ||
− | + | $valor = 0.2345; | |
+ | $valor = .54; | ||
+ | $valor = 7E-12; | ||
</source> | </source> | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | <!--4----------------------------------> | ||
− | + | ====Booleano '''''boolean'''''==== | |
+ | <source lang=php> | ||
+ | $estado = TRUE; | ||
+ | $estado = TrUe; | ||
+ | $estado = falsE; | ||
+ | </source> | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | <!--4----------------------------------> | ||
− | + | ====NULL==== | |
+ | *Un tipo especial que solo tiene ese valor. | ||
+ | *Una variable tiene el valor `null`: | ||
+ | # Si aún no se le ha asignado valor o éste se ha destruido (usando `unset()`). | ||
+ | # Si se le ha asignado explícitamente el valor NULL. | ||
<source lang=php> | <source lang=php> | ||
− | < | + | $a = NULL; |
+ | $a = null; | ||
+ | </source> | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | {{MRM_Actividad|Title=Ejercicio 8.- Declaración de variables| | |
− | + | *Haz un programa donde declares variables de diferentes tipos. | |
− | + | *Asigna los valores con diferente formato. | |
− | + | *Visualiza sus valores. | |
− | + | {{plegable|hide|Declaración de tipos| | |
− | + | <source lang=php> | |
− | + | <?php | |
− | + | $entero = 5; | |
− | + | $cadena = "Esto es una cadena"; | |
+ | $float = 5.35; | ||
+ | $booleano = true; | ||
+ | $nulo = null; | ||
+ | echo "El valor de la variable \$entero es $entero<br />"; | ||
+ | echo "El valor de la variable \$cadena es $cadena<br />"; | ||
+ | echo "El valor de la variable \$float es $float<br />"; | ||
+ | echo "El valor de la variable \$booleano es $booleano<br />"; | ||
+ | echo "El valor de la variable \$nulo es $nulo<br />"; | ||
?> | ?> | ||
</source> | </source> | ||
}} | }} | ||
}} | }} | ||
+ | </div> | ||
+ | |||
+ | <br /> | ||
+ | ====Los Tipos String==== | ||
+ | *Ya hemos visto anteriormente el tipo [[#string|string]]. | ||
+ | *Un string es un tipo formado por una cadena de caracteres representados por un sistema determinado de codificación. | ||
+ | *En PHP no existe el tipo carácter, si bien una cadena es tratada internamente como un array de caracteres. | ||
+ | *En PHP hay muchas funciones para trabajar con cadenas de caracteres. Las podemos ver en la página oficial: | ||
+ | <source lang=php> | ||
+ | "Esto es una cadena de caracteres"; | ||
+ | </source> | ||
+ | https://www.php.net/language.types.string | ||
+ | https://www.php.net/manual/es/ref.strings.php | ||
+ | |||
+ | |||
+ | |||
+ | <!-- | ||
+ | {{MRM_Actividad|Title = Ejercicio 7 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio7|Funciones de conversión]]| | ||
+ | *Usa las fuciones especificadas para visualizar en los tres sistemas decimales los números del 1 al 100 | ||
+ | *Qué diferencia hay de hacerlo así a usar '''''printf''''' | ||
+ | }} | ||
+ | --> | ||
<!--MRM Mirar y hablar de los sistemas de codificación | <!--MRM Mirar y hablar de los sistemas de codificación | ||
--> | --> | ||
+ | <!-- | ||
https://www.php.net/manual/es/language.types.string.php | https://www.php.net/manual/es/language.types.string.php | ||
− | *En '''''php''''' un string se puede especificar de 4 maneras | + | *En '''''php''''' un string se puede especificar de 4 maneras, hemos visto dos, las comillas simples y dobles: |
{{MRM_Actividad|Title=Representado cadenas string| | {{MRM_Actividad|Title=Representado cadenas string| | ||
#Comillas dobles '''''" "''''' | #Comillas dobles '''''" "''''' | ||
Línea 236: | Línea 328: | ||
*Dentro de una cadena de caracteres, puede haber una serie de caracteres especiales los cuales pueden ser interpretados y evaluados y no se visualizarán. | *Dentro de una cadena de caracteres, puede haber una serie de caracteres especiales los cuales pueden ser interpretados y evaluados y no se visualizarán. | ||
+ | |||
{{MRM_Definicion|Title=Tipos de caracteres especiales| | {{MRM_Definicion|Title=Tipos de caracteres especiales| | ||
*'''''\''''' Es una secuencia de escape | *'''''\''''' Es una secuencia de escape | ||
Línea 253: | Línea 346: | ||
*'''''\$''''' signo de dólar | *'''''\$''''' signo de dólar | ||
*'''''\"''''' comillas dobles | *'''''\"''''' comillas dobles | ||
− | {{Tip|Importante tener en cuenta que estas secuencias no serán renderizadas en el navegador, se pueden ver en el texto que genera la instrucción.}} | + | {{Tip|Importante tener en cuenta que estas secuencias no serán renderizadas en el navegador, se pueden ver en el texto que genera la instrucción. |
+ | }} | ||
}} | }} | ||
− | + | <!-- | |
{{MRM_Actividad|Title=Probando secuencias de escape| | {{MRM_Actividad|Title=Probando secuencias de escape| | ||
− | ;Realiza un programa | + | ;Realiza un programa donde pruebes los siguientes conceptos |
#Visualiza una cadena de caracteres tanto con comillas dobles como con comillas simples | #Visualiza una cadena de caracteres tanto con comillas dobles como con comillas simples | ||
#Declara una variable y prueba a incluirla en las cadenas anteriores | #Declara una variable y prueba a incluirla en las cadenas anteriores | ||
Línea 263: | Línea 357: | ||
#Analiza el resultado verificando que obtienes la salida esperada | #Analiza el resultado verificando que obtienes la salida esperada | ||
{{Plegable|hide|Probando comillas dobles y simples| | {{Plegable|hide|Probando comillas dobles y simples| | ||
− | <source lang=php> | + | <source lang=php> |
− | <?php | + | <?php |
− | //Imprimo cadenas con ambas comillas | + | //Imprimo cadenas con ambas comillas |
− | //Vero que no hay ninguna diferencia | + | //Vero que no hay ninguna diferencia |
− | echo "<h2> Esto es una cadena entre comillas dobles </h2>"; | + | 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>'; | + | echo '<h2> Esto es una cadena entre comillas simples sin diferencia con la |
+ | anterior</h2>'; | ||
− | //Declaro una variable | + | //Declaro una variable |
− | //Observo que entrecomillado doble sí que me visualiza su valor | + | //Observo que entrecomillado doble sí que me visualiza su valor |
− | //Sin embargo en entrecomillado simple no | + | // Sin embargo en entrecomillado simple no |
− | //Igualmente en el primer caso interpreta la secuenca de escape \ | + | //Igualmente en el primer caso interpreta la secuenca de escape \ |
− | //Y en el segundo caso no | + | //Y en el segundo caso no |
− | //En el caso de comillas simples he de escapar la comilla para usarla | + | //En el caso de comillas simples he de escapar la comilla para usarla |
− | $maxima="Que interesante es el php"; | + | $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> |
− | echo '<h2> Valor de la variablle \$maxima <span style=\'color:red\'>\"$maxima\"</span> </h2>'; | + | </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> Probando secuencias de escape </h2>\n"; |
− | echo "<h2>Muchas solo se perciben | + | 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>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 \t\t esto estará separado </h2>\n"; | ||
Línea 305: | Línea 402: | ||
</source> | </source> | ||
}} | }} | ||
− | *La resolución compleja de expresinoes simples '''''{}''''', sirve para obtener el valor de la | + | }} |
− | *Por ejemplo, imagina que queremos concatenar a una variable un carácter. | + | --> |
+ | *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. | ||
{{MRM_Ejemplo| | {{MRM_Ejemplo| | ||
<source lang=php> | <source lang=php> | ||
Línea 334: | Línea 433: | ||
?> | ?> | ||
</source> | </source> | ||
− | |||
}} | }} | ||
+ | *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: |
+ | {{MRM_Actividad|Title=Visualizando variables| | ||
+ | *'''''String''''' aporta su valor | ||
<source lang=php> | <source lang=php> | ||
− | + | $modulo = "Desarrollo en el servidor"; | |
− | + | echo "<h2>Estoy estudiando $modulo </h2>"; | |
− | + | ?> | |
</source> | </source> | ||
+ | *Genera la salida | ||
+ | Estoy estudiando Desarrollo en el servidor | ||
+ | *'''''Entero y float''''' aporta su valor como parte del string | ||
+ | <source lang=php> | ||
+ | $nota = 9.58; | ||
+ | echo "<h2>Y me estudio se recompensa con una nota de $nota</h2>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *Genera la salida | ||
+ | Y me estudio se recompensa con una nota de 9.58 | ||
+ | *'''''Booleano''''' TRUE se convierte a "1" y false a un string vacío "" | ||
+ | <source lang=php> | ||
+ | $bool1 = true; | ||
+ | $bool2 = false; | ||
+ | echo "<h2> Visualizando booleanos: true -$bool1- y false -$bool2-</h2>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *Genera la salida | ||
+ | Visualizando booleanos: true -1- y false -- | ||
+ | *'''''Null''''' Un string vacío "" | ||
+ | <source lang=php> | ||
+ | $valor = null; | ||
+ | echo "<h2> Visualizando el valor null -$valor-</h2>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *Genera la salida | ||
+ | Visualizando el valor null -- | ||
+ | *'''''Array''''', Genera la palabra '''Array''' | ||
+ | <source lang=php> | ||
+ | $vector = [1,2,3,4,5]; | ||
+ | echo "<h2> Visualizando un array -$vector-</h2>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *Genera la salida | ||
+ | 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 | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | Class foo { | ||
+ | } | ||
+ | $obj = new foo(); | ||
+ | echo "<h2> Visualizando un objeto -$obj-</h2>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | *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''''' | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | <?php | ||
+ | $con =new mysqli("localhost","root", "root"); | ||
+ | echo "<h2> Visualizando un recurso -$con-</h2>"; | ||
+ | </source> | ||
+ | *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 | ||
+ | }} | ||
+ | <div class="slide"> | ||
+ | <!-- | ||
+ | =====Comillas dobles===== | ||
+ | *En ellas se interpretan los caracteres especiales. | ||
+ | #''''' $''''' seguido de un nombre, interpreta que es una variable y toma su valor (null si no tiene valor o no está definida). | ||
+ | #'''''\''''' es un carácter de secuencia de escape, e interpreta que el carácter siguiente tiene un significado especial \\ \a \n \r \t , ... | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | + | *Si queremos que se ignore un carácter especial, éste ha de ir precedido por el caracter '''''\''''' | |
− | + | <source lang=php> | |
− | <source lang= | + | $nombre = 'pedro'; |
− | + | echo "El valor de la variable \$nombre es $nombre"; | |
− | + | ||
− | + | ||
</source> | </source> | ||
+ | *El resultado sería | ||
+ | El valor de la variable $nombre es pedro | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | + | =====Comillas simples===== | |
− | + | *Como ya hemos comentado incidimos que en en este tipo de representación de las cadenas solo se interpreta el carácter especial \ o bien seguido de la barra invertida '''''\\''''' comilla simple '''''\<nowiki>'</nowiki>'''''. | |
− | * | + | *El resto de caracteres no se interpretan. |
− | + | </div> | |
− | + | ||
− | + | <div class="slide"> | |
− | <source lang= | + | <source lang=php> |
− | + | $nombre = 'pedro'; | |
− | + | echo 'El valor de la variable $nombre es $nombre | |
+ | y \\ \'texto\' sí que se ve entre comillas simples'; | ||
</source> | </source> | ||
+ | *La salida sería | ||
+ | El valor de la variable $nombre es $nombre | ||
+ | y \ 'texto' sí que se ve entre comillas simples'; | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | --> | ||
+ | <br /> | ||
+ | =====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 | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | <source lang=php> | ||
+ | <?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; | ||
+ | ?> | ||
+ | </source> | ||
+ | *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 | ||
+ | |||
+ | <source lang=php> | ||
+ | <?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; | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | |||
+ | =====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 | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | $nombre=pedro; | ||
+ | $frase = <<<'FINAL' | ||
+ | El valor de $nombre | ||
+ | es $nombre, pero aquí | ||
+ | no lo veo por que es nowdoc | ||
+ | FINAL; | ||
+ | ?> | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
<!--4---------------------------------> | <!--4---------------------------------> | ||
− | + | ||
+ | ====Tipos complejos==== | ||
*Objetos básico en su aspecto de OOP | *Objetos básico en su aspecto de OOP | ||
*Matrices o arrays muy muy utilizados | *Matrices o arrays muy muy utilizados | ||
Línea 378: | Línea 611: | ||
</div> | </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 |
− | + | <source lang=php> | |
− | + | $fruta ="fresas"; | |
+ | $fresas = 25; | ||
+ | </source> | ||
+ | *Podemos hacerlo de la siguiente forma | ||
+ | <source lang=php> | ||
+ | $fruta ="fresas"; | ||
+ | $$fruta = 25; | ||
+ | </source> | ||
+ | *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 | ||
+ | <source lang=php> | ||
+ | $asignatura="modulo" | ||
+ | $$nombre ="BD"; // ahora diremos que $modulo vale BD | ||
+ | </source> | ||
+ | *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 | ||
<source lang=php> | <source lang=php> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
− | + | --> | |
− | + | ||
− | + |
Última revisión de 09:06 21 oct 2024
- La función gettype($variable) permite ver el tipo de una variable en un momento dado.
|
|
|
Los Tipos String
- Ya hemos visto anteriormente el tipo string.
- Un string es un tipo formado por una cadena de caracteres representados por un sistema determinado de codificación.
- En PHP no existe el tipo carácter, si bien una cadena es tratada internamente como un array de caracteres.
- 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
<?php $nombre="Manuel"; $apellido="Romero"; echo "Tu identificación $nombre"."_"."$apellido" ?>
<?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:
$modulo = "Desarrollo en el servidor"; echo "<h2>Estoy estudiando $modulo </h2>"; ?>
Estoy estudiando Desarrollo en el servidor
$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
$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 --
$vector = [1,2,3,4,5]; echo "<h2> Visualizando un array -$vector-</h2>"; ?>
Visualizando un array -Array-
<?php Class foo { } $obj = new foo(); echo "<h2> Visualizando un objeto -$obj-</h2>"; ?>
[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
<?php <?php $con =new mysqli("localhost","root", "root"); echo "<h2> Visualizando un recurso -$con-</h2>";
[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
|
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