Diferencia entre revisiones de «Plantilla:PHP/Declaraciones»
De WikiEducator
(→Declaraciones) |
(→Heredoc) |
||
(14 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 12: | Línea 11: | ||
===Declaraciones=== | ===Declaraciones=== | ||
− | *Estas instrucciones sirven para declarar elementos dentro del programa que posteriormente vamos a utilizar | + | *Estas instrucciones sirven para declarar elementos dentro del programa que posteriormente vamos a utilizar. |
*En un programa se pueden declarar: | *En un programa se pueden declarar: | ||
#'''''variables''''' | #'''''variables''''' | ||
#'''''constantes''''' | #'''''constantes''''' | ||
− | #'''''subprogramas''''' (funciones, procedimientos. En terminología OO métodos), esto lo veremos | + | #'''''subprogramas''''' (funciones, procedimientos. En terminología OO, métodos), esto lo veremos más adelante. |
− | *La | + | *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 | + | {{MRM_Puntos clave|Title=Lenguajes de programación en función de cómo se realiza la declaración| |
;Lenguajes fuertemente tipados | ;Lenguajes fuertemente tipados | ||
− | : | + | :Las variables deben ser declaradas antes de usarlas. |
− | :Durante la ejecución esa variable no cambia de tipo | + | :Durante la ejecución, esa variable no cambia de tipo. |
<source lang=java> | <source lang=java> | ||
− | //En un lenguaje como | + | //En un lenguaje como Java |
int edad; | int edad; | ||
String nombre; | String nombre; | ||
edad = 25; | edad = 25; | ||
− | nombre="Manuel"; | + | nombre = "Manuel"; |
</source> | </source> | ||
− | <source lang= | + | <source lang=php> |
− | //En un lenguaje como | + | //En un lenguaje como PHP |
$edad = 25; | $edad = 25; | ||
− | $nombre="Manuel"; | + | $nombre = "Manuel"; |
</source> | </source> | ||
;Lenguajes débilmente tipados | ;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= | + | <source lang=php> |
− | + | $a = 5; // Ahora la variable $a es de tipo entero | |
− | + | $a = "Nieves"; // Ahora la variable $a es de tipo string | |
− | + | ||
</source> | </source> | ||
}} | }} | ||
− | |||
− | |||
− | *Respecto a los tipos de | + | *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: | *Consideremos el lenguaje '''''php''''', como ya hemos comentado: | ||
− | # ''entero o int'' , en | + | # ''entero o int'' , en PHP será de tipo '''''int''''', con valores numéricos sin decimales. |
− | # ''real o float'', en | + | # ''real o float'', en PHP será de tipo '''''float''''', con valores numéricos con decimales. |
− | # ''cadena_caracteres o | + | # ''cadena_caracteres o string'', en PHP será el tipo '''''string''''', que representa cadenas de caracteres. |
− | # ''booleano o boolean'' en | + | # ''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 | + | # ''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| | {{MRM_Puntos clave|Title=Declaraciones que podemos realizar| | ||
;variables | ;variables | ||
Línea 65: | Línea 64: | ||
;clases | ;clases | ||
;objetos y recursos (clases ya creadas o incluidas) | ;objetos y recursos (clases ya creadas o incluidas) | ||
− | {{MRM_Actividad|Title=Temas | + | {{MRM_Actividad|Title=Temas posteriores| |
+ | Las funciones, clases y objetos los veremos en otro tema. | ||
}} | }} | ||
− | {{MRM_Pregunta|Title=Tener claro el concepto | + | }} |
+ | {{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 75: | 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 91: | 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 127: | 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 135: | 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 151: | 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 173: | 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| | {{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----------------------------------> | ||
Línea 198: | Línea 195: | ||
====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 209: | 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'''''==== | ====real o coma flotante '''''float'''''==== | ||
<source lang=php> | <source lang=php> | ||
− | + | $valor = 0.2345; | |
− | + | $valor = .54; | |
− | + | $valor = 7E-12; | |
</source> | </source> | ||
</div> | </div> | ||
Línea 258: | Línea 249: | ||
====Booleano '''''boolean'''''==== | ====Booleano '''''boolean'''''==== | ||
− | <source lang= | + | <source lang=php> |
− | + | $estado = TRUE; | |
− | + | $estado = TrUe; | |
− | + | $estado = falsE; | |
</source> | </source> | ||
</div> | </div> | ||
Línea 267: | Línea 258: | ||
<div class="slide"> | <div class="slide"> | ||
<!--4----------------------------------> | <!--4----------------------------------> | ||
+ | |||
====NULL==== | ====NULL==== | ||
− | * | + | *Un tipo especial que solo tiene ese valor. |
− | *Una | + | *Una variable tiene el valor `null`: |
− | #Si aún no se le ha asignado valor | + | # 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. | + | # Si se le ha asignado explícitamente el valor NULL. |
− | <source lang= | + | <source lang=php> |
− | + | $a = NULL; | |
− | + | $a = null; | |
</source> | </source> | ||
</div> | </div> | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
− | {{MRM_Actividad|Title=Ejercicio 8.- Declaración de | + | {{MRM_Actividad|Title=Ejercicio 8.- Declaración de variables| |
− | *Haz un programa donde declares variables de diferentes tipos | + | *Haz un programa donde declares variables de diferentes tipos. |
− | *Asigna los valores con diferente formato | + | *Asigna los valores con diferente formato. |
− | *Visualiza sus valores | + | *Visualiza sus valores. |
{{plegable|hide|Declaración de tipos| | {{plegable|hide|Declaración de tipos| | ||
<source lang=php> | <source lang=php> | ||
Línea 290: | Línea 281: | ||
$cadena = "Esto es una cadena"; | $cadena = "Esto es una cadena"; | ||
$float = 5.35; | $float = 5.35; | ||
− | $ | + | $booleano = true; |
$nulo = null; | $nulo = null; | ||
− | + | echo "El valor de la variable \$entero es $entero<br />"; | |
− | echo "El valor de la | + | echo "El valor de la variable \$cadena es $cadena<br />"; |
− | echo "El valor de la | + | echo "El valor de la variable \$float es $float<br />"; |
− | echo "El valor de la | + | echo "El valor de la variable \$booleano es $booleano<br />"; |
− | echo "El valor de la | + | echo "El valor de la variable \$nulo es $nulo<br />"; |
− | echo "El valor de la | + | |
?> | ?> | ||
</source> | </source> | ||
Línea 306: | Línea 296: | ||
<br /> | <br /> | ||
− | ====Tipos String==== | + | ====Los Tipos String==== |
− | *Un string | + | *Ya hemos visto anteriormente el tipo [[#string|string]]. |
− | *En | + | *Un string es un tipo formado por una cadena de caracteres representados por un sistema determinado de codificación. |
− | *En | + | *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> | <source lang=php> | ||
− | + | "Esto es una cadena de caracteres"; | |
</source> | </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 372: | Línea 349: | ||
}} | }} | ||
}} | }} | ||
− | + | <!-- | |
{{MRM_Actividad|Title=Probando secuencias de escape| | {{MRM_Actividad|Title=Probando secuencias de escape| | ||
;Realiza un programa donde pruebes los siguientes conceptos | ;Realiza un programa donde pruebes los siguientes conceptos | ||
Línea 426: | Línea 403: | ||
}} | }} | ||
}} | }} | ||
− | + | --> | |
− | *La resolución compleja de expresinoes simples '''''{}''''', sirve para obtener el valor de la | + | *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. | *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| | ||
Línea 459: | Línea 436: | ||
*Otra utilidad es para visualizar el valor de las variables de variables (Ver apartado correspondinete) | *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| | {{MRM_Actividad|Title=Visualizando variables| | ||
*'''''String''''' aporta su valor | *'''''String''''' aporta su valor | ||
Línea 531: | Línea 509: | ||
}} | }} | ||
<div class="slide"> | <div class="slide"> | ||
+ | <!-- | ||
=====Comillas dobles===== | =====Comillas dobles===== | ||
*En ellas se interpretan los caracteres especiales. | *En ellas se interpretan los caracteres especiales. | ||
Línea 564: | Línea 543: | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | + | --> | |
+ | <br /> | ||
=====Heredoc===== | =====Heredoc===== | ||
*Este tipo de expresión de string es útil para especificar cadenas largas en multilíneas | *Este tipo de expresión de string es útil para especificar cadenas largas en multilíneas | ||
Línea 586: | Línea 566: | ||
?> | ?> | ||
</source> | </source> | ||
− | *MUY IMPORTANTE: '''''La palabra final no debe tener ningún espacio | + | *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> | ||
<div class="slide"> | <div class="slide"> | ||
− | ===== | + | |
+ | =====NowDoc===== | ||
*Es igual que heredoc , pero sin interpretar los caracteres especiales salvo '''''\\''''' '''''\.''''' | *Es igual que heredoc , pero sin interpretar los caracteres especiales salvo '''''\\''''' '''''\.''''' | ||
*O sea que es como un entrecomillado sencillo | *O sea que es como un entrecomillado sencillo | ||
Línea 603: | Línea 596: | ||
El valor de $nombre | El valor de $nombre | ||
es $nombre, pero aquí | es $nombre, pero aquí | ||
− | no lo veo por que es | + | no lo veo por que es nowdoc |
FINAL; | FINAL; | ||
?> | ?> | ||
Línea 620: | Línea 613: | ||
===Variables de variables=== | ===Variables de variables=== | ||
https://www.php.net/manual/es/language.variables.variable.php | https://www.php.net/manual/es/language.variables.variable.php | ||
− | *Consiste en declarar una variable | + | *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> | <source lang=php> | ||
− | $ | + | $fruta ="fresas"; |
+ | $$fruta = 25; | ||
</source> | </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> | <source lang=php> | ||
+ | $asignatura="modulo" | ||
$$nombre ="BD"; // ahora diremos que $modulo vale BD | $$nombre ="BD"; // ahora diremos que $modulo vale BD | ||
</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