|
|
Línea 341: |
Línea 341: |
| | | |
| === Cadenas=== | | === Cadenas=== |
| + | *En php las cadenas de caracteres, son expresiones literales |
| + | *Tenemos 4 maneras diferentes de poder expresar una cadena de caracteres como un literal |
| *Comillas dobles "" | | *Comillas dobles "" |
| *Comillas sencillas <nowiki>''</nowiki> | | *Comillas sencillas <nowiki>''</nowiki> |
| + | *Sintasix '''''heredoc''''' |
| + | *Sintaxis '''''nowdoc''''' |
| </div> | | </div> |
| | | |
| <div class="slide"> | | <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 caracter de secuencia de escape, e interpreta que el carácter siguiente tiene un significado especial \\ \a \n \r \t , ... |
| + | </div> |
| + | |
| + | <div class="slide"> |
| + | *Si queremos que se ignore un carácter especial, éste ha de ir precedido por el caracter '''''\''''' |
| + | <source lang=php> |
| + | $nombre = 'pedro'; |
| + | echo "El valor de la variable \$nombre es $nombre"; |
| + | </source> |
| + | *El resultado sería |
| + | El valor de la variable $nombre es pedro |
| + | </div> |
| + | <div class="slide"> |
| + | |
| + | ;Comillas simples |
| + | *En ellas solo se interpreta el carácter, seguido de \ o bien seguido de la barra invertida '''''\\''''' comilla simple '''''\<nowiki>'</nowiki>''''' |
| + | *El resto de caracteres no se interpretan |
| + | </div> |
| + | <div class="slide"> |
| + | |
| + | <source lang=php> |
| + | $nombre = 'pedro'; |
| + | echo 'El valor de la variable $nombre es $nombre y \\ \'texto\' si que se ve entre comillas simples'; |
| + | </source> |
| + | *La salida sería |
| + | El valor de la variable $nombre es $nombre y \ 'texto' si que se ve entre comillas simples'; |
| + | </div> |
| + | <div class="slide"> |
| + | ;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 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> |
| + | *La palabra final no debe tener ningún espacio ni tabulador antes |
| + | </div> |
| + | <div class="slide"> |
| + | |
| + | ;NewDoc |
| + | *Es igual que heredoc , pero sin interpretar los caracteres especiales salvo '''''\\''''' '''''\.''''' |
| + | *O sea que es como un entrecomillado sencillo |
| + | *La sintasix 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 newdoc |
| + | FINAL; |
| + | </source> |
| + | |
| + | </div> |
| + | <div class="slide"> |
| + | |
| + | |
| + | |
| + | |
| + | |
| <!--4----------------------------------> | | <!--4----------------------------------> |
| | | |
| <div class="slide"> | | <div class="slide"> |
| + | |
| === Funciones de salida=== | | === Funciones de salida=== |
| *Construcciones básicas para salida de caracteres | | *Construcciones básicas para salida de caracteres |
Variables, constantes y tipos de datos
Pregunta
- Qué es un tipo de dato
- Qué es una variable
|
Definición
Un tipo de dato es un conjunto de valores para los cuales hay definidos una serie de operaciones
|
Definición
Una variable es una posición de memoria que va almacener algún valor de un determinado tipo, y cuyo contenido puede variar durante la ejecución de un programa
|
- PHP
- Tipado dinámico
- Los lenguajes de programación pueden ser mas 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.
- Lenguajes fuertemente tipos o débilmente tipados o tipado dinámico
- 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.
Variables
Identificador
- En php las variablas se prepresentas con el signo $ seguido de un caracter de subrayado o una letra y luego letras, números y caracteres de subrayado en cualquier orden y número.
- identificador de variables
Puntos clave
$(a..zA..Z_0-9)*
|
<?php
$miVariable= 8;/*Variable de tipo entero*/
edad = 5/*Error en el identificador*/
$5edad = 5 /*Error en el identificador */
?>
- El lenguaje es sensible a mayúsculas y minúsculas
- En los identificadores de variables
- No lo es en nombres de funciones
- No lo es en palabras reservadas (if, then, else,...)
Valores y tipos de datos
- En Php tenemos 8 tipos de datos
- En php tenemos
- 5 tipos básicos o primitibos (booleano, entero, real, string, NULL)
- 3 compuestos (array, objeto, recurso)
tipos básicos
- entero integer
- Posible notación decimal/octal/hexadecimal
decimal [0..9]+
hexadecimal 0x[0..f]+
octal 0[0..7]+
binario 0b[01]+
- Todos ellos pueden ser positivos o negativos
**$Numero=10;
*Octal
**$NumeroOctal=067;
*Hexadecimal
**$NumeroHex=0cA56B;
- Al imprimirlos con print los veré con valor decimal
- Para verlos en otras base hay que usar printf o format o utilizar las conversiones dechex o dechex o octdec, .... que se ven después
- cadena string
$frase="Esto es un literal de cadena de caracteres"
- real o coma flotante float
$valor=$0.2345;
$valor=.54;
$valor=7E-12;
- Booleano boolean
$estado=TRUE;
$estado=TrUe;
$estado=falsE;
- 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 (unset()
- Si se le ha asignado explícitametne el valor NULL.
- 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
Comentarios
Son ignorados por el intérprete
<?php
/*
Este código no hace nada pero muestra
la sintaxis de los comentarios
como este que ocupa varias líneas tipo lenguaje C o Java
*/
$miVariable= 8;// Esta parte de la línea se ignorará
$miVariable+= 8;# y esta parte de línea tambien
echo "Valor de la variable $miVariable";
//Este es otro comentario de una sola línea
#Este es otro modo de hacer comentarios tipo script de linux
?>
Separación de instrucciones
- En php cada instrucción se separa de otra con ; (punto y coma).
- El cierre de etiqueta php implica un ; (punto y coma), por lo que podríamos no ponerlo
<?php
$a=5;
$echo'la instruccion de arriba es una y esta otra";
$echo'esta instrucción puede no llevar ; por ir antes de fin de etiqueta php, pero mejor ponerla"
?>
- Este código nos visualizará
Valor de la variable 16
Actividad
- Probamos a hacer programas sencillos donde asignamos y visualizamos valores
- entero:
- cadena:
- booleano:
- real
- NULL
|
Valor de variable
- Una variable le asigno un valor en cualquier momento
- El tipo de la variable depende del valor que tiene
- Hay una serie de funciones del sistema relacionadas con los valores y las variables
Funciones de php de tipos y valores
- Existen una serie de funciones que son interesantes de conocer
- Están relacionadas con los tipos de datos y valores
- Alguna de ellas son extremadamente útiles y utilizadas, por ejemplo antes de procesar un dato, hay que ver que dicho dato tenga valor.
- A continuación trataremos alguna de ellas
- var_dump
void var_dump($expresion)
- Nos da información sobre la estructura de un valor resultado de una expresion
- isset
- verifica que una variable tiene valor (está definida y no tiene un valor null)
<?php
$VariableValor= 5;
print ("El valor de la variable es $VariableValor");
print ("El valor de otra variable es $OtraVariableValor");
if (isset($VariableValor))
print ("VariableValor tiene valor asignado");
else
print ("VariableValor no no tiene valor asignado");
if (isset($OtraVariableValor))
print ("OtraVariableValor tiene valor asignado");
else
print ("OtraVariableValor no no tiene valor asignado");
?>
- empty
- Determina si una variable no existe. Devuelve true si no existe o su valor está vacío
Actividad
Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo
|
Actividad
Usando la función xxxyyy donde xxx e yyy será dec oct bin o hex para convertir el valor de un sistema numérico a otro
|
Actividad
- Define las siguientes variables que se especifican en el código siguiente y verifica el resultado con empty()
|
$num=0;
$nombre="";
$nombre=null;
$nombre="0";
$pregunta = FALSE;
- gettype]
- Devuelve el tipo de una variable
string gettype($variable)
- [1]is-double is-int, is-xxx
- son funciones donde xxx especificado en el último nombre, puede ser cualquiera de los tipos
- Todas ellas devuelve un booleano que indica si la variable, valor o expresion es o no de ese tipo,
string is_int($variable);
string is_double($variable);
string is_bool($variable);
string is_integer($variable);
string is_null($variable);
string is_string($variable);
...
Actividad
Visualizar de qué tipo es la expresión mostrada en el código siguiente y visualiza el valor de la expresión
|
- unset
- Destruye la variable especificada perdiéndose su valor
void unset ($var)
Cadenas
- En php las cadenas de caracteres, son expresiones literales
- Tenemos 4 maneras diferentes de poder expresar una cadena de caracteres como un literal
- Comillas dobles ""
- Comillas sencillas ''
- Sintasix heredoc
- Sintaxis nowdoc
- 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 caracter de secuencia de escape, e interpreta que el carácter siguiente tiene un significado especial \\ \a \n \r \t , ...
- Si queremos que se ignore un carácter especial, éste ha de ir precedido por el caracter \
$nombre = 'pedro';
echo "El valor de la variable \$nombre es $nombre";
El valor de la variable $nombre es pedro
- Comillas simples
- En ellas solo se interpreta el carácter, seguido de \ o bien seguido de la barra invertida \\ comilla simple \'
- El resto de caracteres no se interpretan
$nombre = 'pedro';
echo 'El valor de la variable $nombre es $nombre y \\ \'texto\' si que se ve entre comillas simples';
El valor de la variable $nombre es $nombre y \ 'texto' si que se ve entre comillas simples';
- 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;
<?
- La palabra final no debe tener ningún espacio ni tabulador antes
- NewDoc
- Es igual que heredoc , pero sin interpretar los caracteres especiales salvo \\ \.
- O sea que es como un entrecomillado sencillo
- La sintasix 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 newdoc
FINAL;
Funciones de salida
- Construcciones básicas para salida de caracteres
- No son funciones (con o sin paréntesis) son echo' print
echo
- Es el uso más sencillo
- Imprime una cadena como argumentos
- En la versión sin paréntesis también puedes pasar una lista de argumentos.
<?php
- Echo “primer argumento”, “segundo argumento”, “tercer argumeto”
?>
print
Tiene dos diferencias con echo
- Sólo puede aceptar un argumento
- Devuelve un valor que representa si la sentencia ha tenido o no éxito
- Para las siguientes actividades debes conocer las estructuras de control básicas.
Estructuras de control 1
A continuación veremos las estructuras de control
Son de tres tipos
- Selección
- Iteración
- Secuenciales
Para construirlas necesitamos operadores
- Operadores lógicos
Operadores lógicos
and
or
!
xor
&&
||
Funcionan por cortocircuito
Construyen expresiones booleanas y tras su evaluación retorna un valor booleano.
Operadores lógicos
Operadores lógicos
==
¡=
<
>
<=
>=
===
Operadores ternario
Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
Selección if
If ( condicion)
Sentencia 1;
if (condicion){
Sentencia 1
Sentencia 2
}
if (condicion)
Sentencia 1
else
Sentencia 2
if condicion:
Sentencia 1;
endif;
iteracion for
for (expression_inicial; comprobacion_terminacion;exrpesion_incremento){
sentencias;
}
Actividad
Haz un programa que sume los 100 primeros números
|
Actividad
Haz un programa que obtenga de forma aleatoria dia (1-31)mes(1-12) y año(1-3000) y nos diga si la fecha es correcta o no y porqué
|
Actividad
- Haz un programa que a partir de precio hora y de número de horas calcule una nómina, teniendo en cuenta que:
- mas de 40 horas son extras (1.5 el precio establecido
- IRPF < 600E exento
- Entre 600 y 800 5%
- Mas de 800 12 %
- Nos debe de dar detalle del bruto, descuentos y neto de salario
|
Actividad
Un programa que nos diga si un número es o no primo
|
Actividad
Haz un programa que muestre la tabla de multiplicar de un número aleatorio en una tabla. Intenta que las sentencias html queden fuera del código de php
|
Constantes
- Se definen con la funcion define()
define("IVA",0.21);
$total=$base*(1+IVA);
- identificador
- Se usa el mismo criterio de construcción pero no empieza por $
- Se pueden definir y utilizar en cualquier momento que se necesiten.
- Para saber si una constante está definida defined()
Constantes predefinidas
- Como en otros lenguajes, existen una serie de constantes predefinidas
- Nos las ofrece el entorno y dependerán de él para su valor
- En php hay 8 constantes predefinidas
constantes predefinidas en php
|