SlideShare una empresa de Scribd logo
 
	
  
                                                                     Curso-Taller: Desarrollo de Sitios Web con PHP
                                                                                                                                                                                                                    PRESENTACIÓN

Aunque existe una multitud de lenguajes y entornos de desarrollo concebidos para Internet,
PHP se ha convertido en uno de los lenguajes, del lado servidor, más ampliamente utilizados
para el desarrollo de páginas dinámicas junto con ASP, JSP, ColdFusion y Perl. En el último
año, el número de servidores que utilizan PHP se ha disparado, logrando situarse cerca de los
20 millones de sitios, esto es, más del 30% de los dominios en internet.

En PHP se combinan muchas características que contribuyen notablemente a su masiva
utilización; entre otras, está el hecho de ser un software de libre distribución y multiplataforma
convertido en el complemento ideal para el popular tándem Linux-Apache en el desarrollo de
sitios Web. Pero lo más destacable del lenguaje, y una de las características que más han
influido en su popularización, es su sencillez de uso para los programadores principiantes (se
pueden desarrollar aplicaciones sencillas en un corto intervalo de tiempo) y sus posibilidades
avanzadas para el profesional (Comunicación con bases de datos, comunicación vía sockets,
generación de gráficos, etc.).




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                                                                                                                                                                                                                                           Índice

Introducción

1. Sintaxis básica
   1.1. Comentarios
   1.2. Declaración de variables
   1.3. Variables predefinidas
   1.4. Tipos de datos
       1.4.1.Cadenas
       1.4.2.Arrays
   1.5. Funciones para variables
   1.6. Constantes
       1.6.1.Constantes predefinidas
   1.7. Operadores
       1.7.1.Operadores aritméticos
       1.7.2.Operadores de asignación
       1.7.3.Incremento y decremento
       1.7.4.Operadores de comparación
       1.7.5.Operadores lógicos
2. Estructuras de control
   2.1. Sentencias condicionales
       2.1.1.If
       2.1.2.If…else
       2.1.3.If…elseif
       2.1.4.If compacto
       2.1.5.Switch
       2.1.6.For
       2.1.7.Foreach
       2.1.8.While
       2.1.9.Include
       2.1.10. Require
3. Cadenas
4. Arrays
5. Funciones
6. Funciones de fecha y hora
7. Cookies y sesiones
   7.1. Cookies
   7.2. Sesiones
8. Bases de datos
   8.1. MySQL
   8.2. Creación de una base de datos
   8.3. Creación de tablas
   8.4. Tipos de datos
   8.5. Conexión a una base de datos con PHP
   8.6. Añadir registros
   8.7. Eliminar registros
   8.8. Modificar registros
   8.9. Funciones de PHP para el manejo de MySQL
9. PHP5
   9.1. Clases y Objetos

www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  2	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                              9.1.1.Constructores
                                              9.1.2.Destructores
                                              9.1.3.Modificadores de acceso
                                              9.1.4.Nuevos métodos
                                              9.1.5.Clonación de objetos
                                              9.1.6.Clases abstractas
                                              9.1.7.Interfaces
                                              9.1.8.Operador InstaceOf
                                              9.1.9.Autocarga de clases
                                              9.1.10. Acceso a subojetos




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  3	
  |	
  P á g i n a 	
  
	
  
 
	
  
Introducción

PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de
páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor
(server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de
comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz
gráfica usando las bibliotecas Qt o GTK+.

PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP
Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdof en 1994;
sin embargo la implementación principal de PHP es producida ahora por The PHP Group y
sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo
la PHP License, la Free Software Foundation considera esta licencia como software libre.

PHP es un lenguaje interpretado de propósito general ampliamente usado y que está diseñado
especialmente para desarrollo web y puede ser embebido dentro de código HTML.
Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y
creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web
y en casi todos los sistemas operativos y plataformas sin costo alguno. PHP se encuentra
instalado en más de 20 millones de sitios web y en un millón de servidores, aunque el número
de sitios en PHP ha declinado desde agosto de 2005. Es también el módulo Apache más
popular entre las computadoras que utilizan Apache como servidor web. La más reciente
versión principal del PHP fue la versión 5.2.6 de 1 de mayo de 2008.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  4	
  |	
  P á g i n a 	
  
	
  
 
	
  
1. Sintaxis básica

Objetivo particular: Al finalizar el tema, el participante será capaz de conocer la sintaxis
básica y particularidades del lenguaje PHP.

Introducción: PHP es un lenguaje de programación muy poderoso y a la vez sencillo de
utilizar, gracias a esto se debe la gran popularidad que ha tenido los últimos años y aún sigue
evolucionando.

Para crear un documento en PHP primeramente se escriben los delimitadores <?php y ?>. La
extensión para los archivos de PHP es “.php”.

1.1 Comentarios

Existen 3 tipos de comentarios en PHP:

                                             //Comentario para una línea.
                                             ############
                                             #Comentario
                                             ############
                                             /*
                                               *Comentarios para
                                               *varias líneas
                                               */

1.2 Declaración de variables

Para crear una variable en PHP simplemente se escribe un $ seguido del nombre de la
variable, por ejemplo:

                                             $a = 1; $fruta = “Manzana”;
                                             $MiVariable = “Valor”;

PHP diferencia entre mayúsculas y minúsculas en las variables. Las variables no pueden
comenzar con número, no pueden tener espacio, sin comas ni caracteres especiales.

                                             $valor actual [MAL]
                                             $#Datos X [MAL]
                                             $2Saldos X [MAL]
                                             $Prueba, Valor [MAL]

Cuando utilizamos comillas dobles, podemos incluir dentro de la cadena nombres de variables
que serán evaluados (sustituidos por sus respectivos valores) a la hora de mostrar la
información. Si introducimos nombres de variables dentro de una cadena encerrada entre
comillas simples, la variable no será evaluada.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  5	
  |	
  P á g i n a 	
  
	
  
 
	
  
1.3 Variables predefinidas

                       •                      $PHP_SELF;

                       •                      $_COOKIES;

                       •                      $_GET;

                       •                      $_POST;

                       •                      $_SERVER;

                       •                      $_SESSION;

                       •                      $_FILES;

1.4 Tipos de datos

En PHP existen todos los tipos de datos: numérico, decimal, boolean, string, array, objeto, etc.
La ventaja de PHP sobre otros lenguajes es que no es necesario declarar las variables para
poderlas utilizar, simplemente se crean cuando se desean usar. PHP cuenta con un convertidor
automático de tipos de datos, es decir PHP puede hacer sin ningún problema la siguiente
operación y no marcara ningún error:

                                             $a = 3; //valor numérico.
                                             $b = “5”; //valor string.
                                             echo ($a + $b) //Imprime 8.

1.4.1 Cadenas

Para crear un valor tipo cadena (string) simplemente se escribe el contenido de la variable
entre comillas dobles (“”) o comillas simples (‘’).

                                             $nombre = “Carlos”;
                                             $apellido = “Santana”;
                                             echo $nombre.$apellido; //Imprime: Carlos Santana

                                                                                 Código de escape                                                                                                                                                                                                                                                                                      Significado

                                                                                                                                   b                                                                                                                                                                                      Espacio hacia atrás (backspace).

                                                                                                                                    f                                                                                                                                                                                             Cambio de página (form feed).

                                                                                                                                   n                                                                                                                                                                                                      Cambio de línea (line feed).

                                                                                                                                    r                                                                                                                                                                                    Retorno de carro (carriage return)

                                                                                                                                    t                                                                                                                                                                                                                                                    Tabulación

                                                                                                                                     ’                                                                                                                                                                                                                                         Comilla simple

                                                                                                                                   ”                                                                                                                                                                                                                                              Comilla doble




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  6	
  |	
  P á g i n a 	
  
	
  
 
	
  
1.4.2 Arrays

Los arrays o matrices son estructuras que permiten el almacenamiento de un conjunto de datos
bajo un mismo nombre; son una construcción tradicional de los lenguajes de programación.
Podemos definir un array como un conjunto ordenado de elementos identificados por un índice
(la posición del elemento dentro de esta colección ordenada), de modo que en cada posición
marcada por un índice el array contiene un valor. Se pueden construir tantos índices como se
quiera, aunque el uso habitual de los arrays es en forma de matriz unidimensional. La longitud
del array se modifica de forma dinámica siempre que le añadimos un nuevo elemento.

En PHP, los arrays pueden estar compuestos de elementos de diferente naturaleza y su primer
índice o posición es la 0. Además, existen unos arrays especiales en PHP denominados
asociativos en los que el índice es un valor de tipo string, de modo que cada posición está
definida por el par (clave, valor), pudiendo acceder al contenido (valor) a través de la clave.

Ejemplo de array escalar:

                                             <?php
                                             $array[0] = “Mi Nombre”;
                                             $array[1] = “es Carlos y tengo”;
                                             $array[2] = “20 años”;
                                             $array[] = “y estudio telemática”; //Lo insertara en la posición 3.

                                             for($i = 0; $i <= count($array) – 1; $i++) {
                                                echo $array[$i].” “;
                                             }
                                             ?>

Ejemplo de array asociativo:

                                             <?php
                                             $array[“Nombre”] = “Mi Nombre”;
                                             $array[“Es”] = “es Carlos y tengo”;
                                             $array[“Tengo”] = “20 años”;
                                             $array[“Estudio”] = “y estudio telemática”; //Lo insertara en la posición 3.
                                             echo $array[“Nombre”].$array[“Es”].$array[“Tengo”].$array[“Estudio”];
                                             ?>

1.5 Funciones para variables

Gettype (variable): Devuelve el tipo de dato pasado como parámetro, pudiendo devolver como
valor: integer, float, string, array, class, object y unknown type.

Settype (variable, tipo): Establece el tipo de dato a guardar en una variable. Con esta función
podemos realizar conversiones de un tipo de datos a otros. Devolverá true si ha tenido éxito; en
caso contrario devolverá false.

Isset (variable): Indica si una variable ha sido inicializada con un valor, en cuyo caso devuelve
true, y en caso contrario false.

Unset (Variable): Destruye una variable liberando los recursos dedicados a dicha variable. Es
necesario indicar como parámetros el nombre de la variable a destruir.

Empty (variable): Devuelve true si la variable aún no ha sido inicializada o bien tiene un valor
de 0 o es una cadena vacía y, en caso contrario devuelve false.


www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  7	
  |	
  P á g i n a 	
  
	
  
 
	
  
Is_Int (variable), is_integer (variable), is_long (variable): Estas funciones devuelven true si
la variable pasada como argumento es de tipo integer; caso contrario devuelve false.

Is_float (var), is_real (var), is_double (var): Estas funciones regresan true si la variable es de
tipo float; caso contrario regresa false.

Is_numeric (var): True si es un número o cadena numérica.

Is_bool (var): True si la variable es de tipo lógico.

Is_array (var): True si la variable es un array.

Is_string (var): True si la variable es de tipo string.

Is_object (var): True si la variable es un objeto.

Intval (var, base), floatval (var), strval (var): Estas funciones sirven para realizar
conversiones de tipos (casting), de modo que convierten a integer, float, o string,
respectivamente, el valor de la variable que se le pasa como parámetro. En particular, la
función intval() puede recibir además un segundo parámetro que representa la base a utilizar
en la conversión (10 = decima, 8 = octal y 16 = hexadecimal), tomando por defecto la base 10
de los números decimales.

1.6 Constantes

Una constante es una variable que mantiene el mismo valor durante la ejecución del programa.
Se puede asegurar que la constante mantiene siempre el mismo valor; en ninguna parte del
script se puede cambiar el valor de una constante una vez que se define. De hecho, los
intentos de cambio provocan errores.

Define (constante, valor): Esta función nos permite crear una constante asignándole su
nombre y su valor a través de los parámetros que recibe.

Defined (constante): Esta función devuelve true si la constante está definida y existe.

1.6.1 Constantes Predefinidas

                                                                                                         Constante                                                                                                                                                                                                                                                                     Significado

                                                                                          PHP_VERSION                                                                                                                                                                            Cadena que representa la versión del intérprete
                                                                                                                                                                                                                                                                                 de PHP en uso.

                                                                                                              PHP_OS                                                                                                                                                             Cadena con el nombre del sistema operativo
                                                                                                                                                                                                                                                                                 con el que se está ejecutando el intérprete de
                                                                                                                                                                                                                                                                                 PHP.

                                                                                                                       TRUE                                                                                                                                                      Verdadero.

                                                                                                                   FALSE                                                                                                                                                         Falso.

                                                                                                         E_ERROR                                                                                                                                                                 Información sobre errores distintos a los de
                                                                                                                                                                                                                                                                                 interpretación del cual no es posible
                                                                                                                                                                                                                                                                                 recuperarse.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  8	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                                                                                          E_PARSE                                                                                                                                                                Informa que el intérprete encontró una sintaxis
                                                                                                                                                                                                                                                                                 inválida en el archivo de comandos. Finaliza la
                                                                                                                                                                                                                                                                                 ejecución.

                                                                                                        E_NOTICE                                                                                                                                                                 Informa que se produjo algo incorrecto que
                                                                                                                                                                                                                                                                                 puede provenir o no de un error. La ejecución
                                                                                                                                                                                                                                                                                 continúa.

                                                                                                 E_WARNING                                                                                                                                                                       Denota un error que no impide que continúe la
                                                                                                                                                                                                                                                                                 ejecución.

                                                                                                                    E_ALL                                                                                                                                                        Conjunto con todos los errores que se han
                                                                                                                                                                                                                                                                                 producido.

1.7 Operadores

Los operadores en PHP son muy parecidos a los de otros lenguajes como C, Java y Javascript.
Se utilizan para determinar un valor, o bien, para obtener un valor final a partir de uno o más
operandos. Podemos encontrar varios tipos de operadores.

1.7.1 Operadores Aritméticos

Estos operadores funcionan igual que en la aritmética básica y se pueden aplicar a las
variables y constantes numéricas. Son los siguientes:

                                                                       Operador                                                                                                                                                                             Ejemplo                                                                                                                                                          Descripción

                                                                                                +                                                                                                                                                              $a + $b                                                                                                                             Suma dos operandos.

                                                                                                  -                                                                                                                                                              $a - $b                                                                                                                           Resta dos operandos.

                                                                                                  *                                                                                                                                                             $a * $b                                                                                                                  Multiplica dos operandos.

                                                                                                  /                                                                                                                                                              $a / $b                                                                                                                          Divide dos operandos.

                                                                                              %                                                                                                                                                              $a % $b                                                                                                                  Resto de la división entera

1.7.2 Operadores de asignación

El operador de asignación más utilizado es “=”; su función básica es asignar un valor a una
variable, para que de este modo se pueda conservar dicho valor en memoria. El operador de
asignación es un operador binario que siempre toma la forma:

                                             Variable = Expresión

Este operador de asignación hace que la variable de la izquierda tome el valor de la expresión
de la derecha. PHP soporta otros operadores de asignación, que realmente son una
combinación del operador de asignación básico con operadores aritméticos y con el operador
de concatenación de cadenas.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  9	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                                                      Operador                                                                                                                                                                           Ejemplo                                                                                                                                                        Descripción

                                                                                               =                                                                                                                                                            $a = $b                                                                                                                           $a toma el valor de $b

                                                                                            +=                                                                                                                                                           $a += $b                                                                                                                       Equivale a: $a = $a + $b

                                                                                             -=                                                                                                                                                           $a -= $b                                                                                                                       Equivale a: $a = $a - $b

                                                                                             *=                                                                                                                                                           $a *= $b                                                                                                                       Equivale a: $a = $a * $b

                                                                                              /=                                                                                                                                                          $a /= $b                                                                                                                        Equivale a: $a = $a / $b

                                                                                          %=                                                                                                                                                           $a %= $b                                                                                                                       Equivale a: $a = $a % $b

                                                                                              .=                                                                                                                                                          $a .= $b                                                                                                                        Equivale a: $a = $a . $b

1.7.3 Incremento y decremento

Al igual que otros lenguajes de programación como C, PHP soporta operadores específicos
para incrementar y decrementar el valor de las variables. Además, el momento de su ejecución
dependerá de la posición en la que aparezcan respecto de la variable a la que son aplicados.

                                                                      Operador                                                                                                                                                                           Ejemplo                                                                                                                                                        Descripción

                                                                                                                                                                                                                                                                   ++$a                                                                                      Preincremento: Incrementa $a
                                                                                            ++                                                                                                                                                                                                                                                               en uno y después devuelve $a.
                                                                                                                                                                                                                                                                   $a++                                                                                      Postincremento: Devuelve $a y
                                                                                                                                                                                                                                                                                                                                                             después incrementa en uno $a.

                                                                                                                                                                                                                                                                      --$a                                                                                   Predecremento: Decrementa $a
                                                                                               --                                                                                                                                                                                                                                                            en uno y después devuelve $a.
                                                                                                                                                                                                                                                                      $a--                                                                                   Postdecremento: Devuelve $a y
                                                                                                                                                                                                                                                                                                                                                             después Decrementa en uno $a.

1.7.4 Operadores de comparación

                                                                      Operador                                                                                                                                                                           Ejemplo                                                                                                                                                        Descripción

                                                                                            ==                                                                                                                                                           $a == $b                                                                                                              Los operandos son iguales.

                                                                                             !=                                                                                                                                                           $a != $b                                                                                                          Los operandos son distintos.

                                                                                        ===                                                                                                                                                          $a === $b                                                                                                            Los operandos son idénticos:
                                                                                                                                                                                                                                                                                                                                                                            iguales y del mismo tipo.

                                                                                         !==                                                                                                                                                           $a !== $b                                                                                                  Los operandos no son iguales o
                                                                                                                                                                                                                                                                                                                                                                          del mismo tipo.

                                                                                                                                                                                                                                                                                                                                                                       El operando de la izquierda es
                                                                                               <                                                                                                                                                            $a < $b                                                                                                     menor que el operando de la
                                                                                                                                                                                                                                                                                                                                                                                 derecha.

                                                                                                                                                                                                                                                                                                                                                              El operando de la izquierda es
                                                                                               >                                                                                                                                                            $a > $b                                                                                          menor o igual que el operando de



www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  10	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                                                                                                                                                                                                                                                                                                                                                                                                             la derecha.

                                                                                          .<=                                                                                                                                                            $a <= $b                                                                                                      El operando de la izquierda es
                                                                                                                                                                                                                                                                                                                                                                         menor o igual que el de la
                                                                                                                                                                                                                                                                                                                                                                                 derecha.

                                                                                                                                                                                                                                                                                                                                                                       El operando de la izquierda es
                                                                                            >=                                                                                                                                                           $a >= $b                                                                                                         mayor o igual que el de la
                                                                                                                                                                                                                                                                                                                                                                                  derecha.

1.7.5 Operadores lógicos

Los operadores lógicos (también llamados operadores booleanos) se utilizan conjuntamente
con expresiones que devuelven valores lógicos. Con estos operadores se pueden combinar
varias condiciones y evaluarlas en una sola expresión.

                                                                      Operador                                                                                                                                                                           Ejemplo                                                                                                                                                        Descripción

                                                                                        &&                                                                                                                                                           $a && $b                                                                                                $a y $b son ambos true.
                                                                                        and                                                                                                                                                          $a and $b

                                                                                             ||                                                                                                                                                           $a || $b                                                                                           $a o $b son true.
                                                                                             or                                                                                                                                                           $a or $b

                                                                                                                                                                                                                                                                                                                                                             $a es false, niega el valor lógico
                                                                                                 !                                                                                                                                                                     ! $a                                                                                  de la variable.


                                                                                        Xor                                                                                                                                                            $a xor $b                                                                                             $a es true o $b es true, pero no lo
                                                                                                                                                                                                                                                                                                                                                             son los dos a la vez.

2 Estructuras de control

Las estructuras de control o sentencias de control nos permiten modificar el flujo de ejecución
básico del programa, es decir, gracias a ellas la ejecución no tiene por qué ser totalmente
secuencial, vamos a poder controlar el flujo lógico de cualquier programa. Estas estructuras
nos permiten bifurcar el flujo del programa y así ejecutar unas partes u otras del código según
se cumplan una serie de condiciones, hacer que un determinado código no llegue a ejecutarse
nunca o que lo haga tantas veces como queramos.

2.1 Sentencias condicionales

Son las estructuras de control más sencillas, se basan en el uso de la sentencia if…else y en
las diferentes formas que ésta puede presentar. Utilizando estas sentencias, somos capaces
de hacer que el programa elija entre dos caminos de ejecución diferentes en función de la
evaluación de una expresión lógica.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  11	
  |	
  P á g i n a 	
  
	
  
 
	
  
2.1.1 If

Es una de las más utilizadas e importantes en la mayoría de los lenguajes de programación. Su
sintaxis es la siguiente:

                                             If (condición) {
                                                [sentencias]
                                             }

El intérprete de PHP lo que hace es evaluar la condición, que debe ser una expresión lógica y,
si resulta verdadera, se ejecutarán las sentencias comprendidas entre las llaves “{” y “}” y, si es
falsa, PHP ignorará las sentencias y seguirá con la ejecución normal del programa, es decir,
nos permite tomar decisiones en torno a una condición.

Las sentencias if se pueden anidar, es decir, podemos poner dentro de un bloque if otras
sentencias if, lo cual proporciona una flexibilidad completa para ejecuciones condicionales.

                                             <?php
                                             $a = 3;
                                             $b = 7;
                                             $c = 9;
                                             echo “El número mayor es:”;

                                             if($a > $b) {
                                                if($a > $c) {
                                                   echo $a;
                                                }
                                             }
                                             if($b > $a) {
                                                if($b > $c) {
                                                  echo $b;
                                                }

                                                       If ($c > $b) {
                                                         echo $c;
                                                       }
                                             }
                                             ?>

2.1.2 If… else

La sentencia if…else consta de un bloque if que se ejecuta cuando la expresión se evalúa a
true y de un bloque else cuyas instrucciones se ejecutarán cuando se evalúa a false. La
sintaxis de la instrucción if…else es la siguiente:

                                             If (expresión) {
                                                 [sentencias]
                                             } else {
                                                 [sentencias]


                                             }



www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  12	
  |	
  P á g i n a 	
  
	
  
 
	
  
2.1.3 If…elseif

Hay muchas ocasiones en que se quiere evaluar una nueva comprobación utilizando una
sentencia if dentro del cuerpo de una sentencia else; para estos casos se puede utilizar la
sentencia elseif que nos permite combinar ambas sentencias en una sola. La sintaxis de la
sentencia if…elseif es la siguiente:

                                             If(expresión) {
                                                [sentencias]
                                             } elseif(expresión) {
                                                [sentencias]
                                             } elseif(expresión) {
                                                [sentencias]
                                             } else {
                                               [sentencias]
                                             }

Ejemplo:

                                             <?
                                             echo “Hoy es: ”;
                                             $dia = date(“D”);

                                             if($dia == “Mon”) echo “Lunes”;
                                             elseif($dia == “Tue”) echo “Martes”;
                                             elseif($dia == “Wed”) echo “Miércoles”;
                                             elseif($dia == “Thu”) echo “Jueves”;
                                             elseif($dia == “Fri”) echo “Viernes”;
                                             elseif($dia == “Sat”) echo “Sábado”;
                                             else echo “Domingo”;
                                             ?>

2.1.4 If compacto

PHP utiliza dos operadores (“?” y “:”) para formar expresiones condicionales que devolverán
uno de dos posibles valores basándose en el valor lógico obtenido al evaluar una expresión. La
sintaxis de estos operadores es:

                                             <expresion1> ? <expresion2> : <expresion3>;

De este modo considerando expresión1, si ésta se evalúa a true, entonces de devolvería la
evaluación de expresión2; en caso contrario, el valor devuelto sería el resultado de evaluar la
expresión3.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  13	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                             <?php
                                             $a = 3;
                                             $b = 7;
                                             $c = 9;

                                             $mayor = ($a > $b) ? $a : $b;

                                             echo “El mayor es”;
                                             echo ($mayor < $c) ? $c : $mayor;
                                             ?>

2.1.5 Switch

La sentencia switch se utiliza para compara un dato con un conjunto de posibles valores. Esta
tarea se puede realizar utilizando múltiples sentencias if o con una sentencia if…elseif múltiple,
pero la sentencia switch es mucho más legible y nos permite especificar un conjunto de
sentencias por defecto, en el caso de que el dato no tenga un valor con que compararlo.

                                             Switch($variable) {
                                                 case valor N: [sentencias]
                                                                [break;]
                                             [default: sentencias; ]
                                             }

Ejemplo:

                                             <?php
                                             echo “Hoy es: ”;
                                             $dia = date(“D”);

                                             switch($dia) {
                                              case “Mon”: echo “Lunes”; break;
                                              case “Tue”: echo “Martes”; break;
                                              case “Wed”: echo “Miércoles”; break;
                                              case “Thu”: echo “Jueves”; break;
                                              case “Fri”: echo “Viernes”; break;
                                              case “Sat”: echo “Sábado”; break;

                                               default: echo “Domingo”;
                                             }
                                             ?>

2.1.6 For

Esta instrucción nos permite realizar un conjunto de instrucciones un determinado número de
veces. Es una de las estructuras de control sintácticamente más compleja de PHP.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  14	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                             For ([inicialización]; [condición]; [bucles]) {
                                                 [sentencias]
                                             }

Las tres expresiones cerradas entre paréntesis son opcionales, pero es necesario escribir los
caracteres punto y coma (“;”) que las separan aunque las expresiones se omitan, para que
cada expresión permanezca en el lugar apropiado.

                                             <?
                                             echo “La suma de los 10 primeros números enteros es: ”;
                                             $suma = 0;
                                             for($i = 1; $i <= 10; $i++) {
                                               $suma += $i;
                                               echo $i;
                                               if($i == 10) echo “=”;
                                               else echo “+”;
                                             }
                                               echo “<strong>$suma</strong>”;
                                             ?>

2.1.7 Foreach

Esta sentencia nos permite recorrer las estructuras de tipo array de una forma sencilla,
obteniendo en cada paso de la iteración uno de sus elementos componentes. También se
suele utilizar para traducir tablas de tipo hash.

                                             Foreach($array as $variable) {
                                               [sentencias]
                                             }

Lo que hace el bucle es recorrer cada uno de los elementos del array que tiene por nombre
$array, asignado en cada paso el valor del elemento actual del array al contenido de la variable
$variable. El bucle hace uso de un puntero interno que apunta a la posición actual del array
(comenzando por la primera y siguiendo en orden ascendente) y que va actualizando de forma
automática en cada una de las iteraciones.

                                             <?php
                                             $array=array("Manzana","Pera","Platano");
                                             reset($array);

                                             foreach ($array as $fruta){
                                              echo "Fruta:$fruta<br>n";
                                             }
                                             ?>

También está función se puede aplicar a un array de tipo asociativo, en el que el índice en
cada elemento no es de tipo numérico.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  15	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                             $a=array(
                                             "uno"=>1,
                                             "dos"=>2,
                                             "tres"=>3,
                                             "diecisiete"=>17
                                             );

                                             foreach($a as $k=>$v){
                                             echo “$a[$k]=>$v”;
                                             }

2.1.8 While

La sentencia while actúa de forma muy parecida a la sentencia for, pero se diferencia de ésta
en que no incluye en su declaración la inicialización de la variable de control del bucle ni su
incremento o decremento. Por tanto dicha variable se deberá declarar antes del bucle while y
su incremento y decremento se deberá realizar dentro del cuerpo de dicho bucle.

                                             While (condición) {
                                               [sentencias]
                                             }

Con esta instrucción se va a poder ejecutar un conjunto de instrucciones un indeterminado
número de veces, siempre y cuando el resultado de comprobar la condición sea verdadera
(debe ser una expresión que se evalúe a un valor lógico). Si la condición se evalúa a true, se
ejecutan las sentencias del cuerpo del bucle; después de ejecutarlas, se volverá a evaluar la
condición, de forma que, si ésta sigue cumpliéndose, se volverán a ejecutar las sentencias.
Esto se repite hasta que la condición se evalúa a false, en cuyo caso no se ejecutarán las
sentencias del cuerpo del bucle y continuará la ejecución del script por la instrucción siguiente
a la sentencia while.

                                             <?php
                                             /* ejemplo 1 */

                                                $i = 1;
                                                while ($i <= 10) {
                                                   print $i++; /* el valor impreso sería
                                                              $i antes del incremento
                                                              (post-incremento) */
                                                }

                                                /* ejemplo 2 */

                                             $i = 1;
                                             while ($i <= 10):
                                                print $i;
                                                $i++;
                                             endwhile;
                                             ?>



Los bucles do...while son muy similares a los bucles while, excepto que las condiciones se
comprueban al final de cada iteración en vez de al principio. La principal diferencia frente a los
bucles regulares while es que se garantiza la ejecución de la primera iteración de un bucle

www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  16	
  |	
  P á g i n a 	
  
	
  
 
	
  
do...while (la condición se comprueba sólo al final de la iteración), mientras que puede no ser
necesariamente ejecutada con un bucle while regular (la condición se comprueba al principio
de cada iteración, si esta se evalúa como FALSE desde el principio la ejecución del bucle
finalizará inmediatamente).

                                             <?php
                                              $i=0;
                                              do{
                                              print $i;
                                              } while($i>0);
                                             ?>

2.1.9 Include

Esta función incluye y evalúa un fichero externo cada vez que es interpretada. Ambos pasos, la
inclusión del fichero externo y su posterior evaluación, se realizan cada vez que el flujo del
programa llega a una línea que contenga la llamada a esta función. En caso de que el fichero a
incluir no exista o su referencia sea errónea, la función genera un aviso o warning, continuando
con la ejecución por la siguiente instrucción.

Cuando un archivo se incluye con include(), el intérprete sale del modo PHP y entra en modo
HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al acabar de leer
dicho archivo. Por esta razón, cualquier código dentro del archivo referenciado que debiera ser
ejecutado como código PHP debe ser encerrado dentro de etiquetas válidas de comienzo y fin
de PHP.

variables.php

                                             <?php
                                             $color='verde';
                                             $fruta='manzana';
                                             ?>

prueba.php

                                             echo "Una $fruta $color";//Una
                                             include 'variables.php';
                                             echo "Una $fruta $color"; //Una Manzana Verde

2.1.10 Require

La sentencia require() incluye y evalúa el archivo especificado. Require() e include() son
idénticas en todos los aspectos excepto en el modo de actuar ante un error. include() produce
un Warning mientras que require() produce un Error Fatal. En otras palabras, no dude en
utilizar require() si quiere que un fichero no encontrado cuelgue el procesamiento de la página.
include() no se comporta de esta manera, el script seguirá funcionando de todas maneras.
Asegurarse que include_path este configurado bien.

3 Cadenas

Echo (cadena), print (cadena): No son funciones propiamente dichas, sino construcciones del
lenguaje. Ambas muestran información por la salida estándar; no soportan ningún atributo de
formato de salida y sólo admiten una única cadena como argumento en su llamada (cuando
necesitamos pasar más de un argumento a cualquiera de estas funciones, deberemos utilizar
las comillas).




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  17	
  |	
  P á g i n a 	
  
	
  
 
	
  
Printf (formato [, argumentos]): Imprime información por la salida estándar soportando
diferentes formatos de salida. Admite múltiples tipos de argumentos a visualizar.

Imprime una cadena cuyo estructura depende del formato descrito en el argumento formato.
Esta cadena está formada por una ristra de caracteres, algunos de los cuales se mostrarán
directamente, mientras que otros, los que van precedidos por el carácter “%”, conocidos como
especificaciones de conversión, son utilizados para formatear la información.

Strlen(cadena): Devuelve la longitud de la cadena pasada como argumento.

Strstr(cadena, cadBusq), strchr(cadena, cadBusq): Busca la aparición de una cadena
dentro de otra y devuelve la subcadena comprendida entre la primera aparición de la cadena
buscada (incluyéndola) hasta el final de la cadena en la que se realiza la búsqueda. La
búsqueda diferencia entre mayúsculas y minúsculas.

Strrchr(cadena, cadBusq): Busca la aparición de un carácter en una cadena y devuelve la
subcadena. Si el elemento a buscar no es una cadena, se convierte a entero y se aplica como
el valor ordinal de un carácter.

Stristr(cadena, cadBusq): Es igual a strstr(), salvo que no diferencia entre mayúsculas y
minúsculas.

Strpos(cad1, cad2 [, desplz]): Encuentra la primera posición de aparición de una cadena a
partir de una cierta posición (si no se indica, el valor por defecto para el desplazamiento es 0).

Strspn(cadena, máscara): Obtenemos la longitud de la subcadena más larga que está
formada sólo por caracteres contenidos en una máscara. Una vez encontrado un carácter que
no está en la máscara se abandona la búsqueda.

Strcmp(cad1, cad2): Compara dos cadenas y devuelve un valor menor que 0, si la segunda
cadena es mayor que la primera, si la segunda es mayor a la primera; mayor que 0, en caso
contrario, y 0, si ambas son iguales.
Substr(cadena, inicio [, tamaño]): Devuelve la subcadena que se encuentra a partir de una
posición dada y llega hasta el final de la cadena original, pudiendo de forma opcional decidir el
tamaño de la subcadena a recuperar.

Substr_replace(cad1, cad2, inicio [, tamaño]): Devuelve una cadena que es resultado de la
sustitución de parte del contenido de una cadena original (indicado por una posición de inicio y
opcionalmente por un tamaño) por el contenido de otra cadena. La cadena original no sufre
ninguna modificación.

Str_replace(cadBus, CadRee, Cadena): Devuelve una cadena, que es resultado de la
sustitución de todas las apariciones de una subcadena, por otro contenido en la cadena
original.

Substr_count(cadena, patrón): Devuelve el número de apariciones de una subcadena dentro
de una cadena.

Chop(Cadena): Devuelve la cadena argumento sin los espacios en blanco y caracteres de fin
de línea que se encuentran al final de la cadena.

Ltrim(cadena): Elimina espacios en blanco que se encuentran al principio de una cadena de
texto.

Trim(cadena): Elimina los espacios en blanco que se encuentran al principio y al final de una
cadena de texto.




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  18	
  |	
  P á g i n a 	
  
	
  
 
	
  
Str_pad(cadena, long): Rellena una cadena con un carácter de relleno (por defecto, es el
espacio en blanco) hasta que la cadena resultante tenga la longitud deseada.

Strtolower(cadena): Convierte una cadena de caracteres a minúsculas.
Strtoupper(cadena): Convierte una cadena de caracteres a mayúsculas.

Ucfirst(cadena): Se encarga de convertir a mayúscula el primer carácter de una cadena de
caracteres, siempre que éste sea alfabético.

Ucwords(cadena): Se comporta igual que la función anterior, salvo que ésta convierte a
mayúsculas el primer carácter de cada palabra que compone la cadena, siempre y cuando
sean caracteres alfanuméricos.

Addslashes(cadena): Devuelve una cadena de caracteres igual que la original en la que se
han escapado los caracteres especiales comillas dobles (“”), comillas simples (‘’) y barra
invertida ().

Split(patrón, cadena): Devuelve un array resultado de dividir una cadena en diferentes
subcadenas. El número total de elementos del array puede ser elegido a través de un
parámetro opcional.}

Explode(patrón, cadena): Devuelve un array resultado de dividir una cadena en diferentes
cadenas.

Implode(nexo, cadena): Devuelve una cadena resultado de unir todos los elementos de un
array en el mismo orden en el que aparecen, pero con una cadena en medio de ellos.

Htmlspecialchars(cadena): Se encarga de convertir los caracteres con un significado especial
en HTML.

Htmlentities(cadena): Es similar a la función htmlspecialchars(), salvo que esta función
traduce todos los caracteres a su correspondiente entidad en HTML.

4 Arrays
Constructor

Otra forma de definir arrays es utilizar el constructor array() proporcionado por el lenguaje. Este
constructor no es una función regular; tiene la siguiente definición:

                                             Array array (mixed valores, …)

Ejemplo:

                                             $vector = array(“Carro”, “Moto”, “Bicicleta”);
                                             echo $vector[0]; //Carro;
                                             echo $vector[1]; //Moto;
                                             echo $vector[2]; //Bicicleta;

El constructor array() también nos permite asignar los elementos del array en el orden en que
queramos. Para ello, indicamos el índice, seguido del símbolo “=>” y el valor del elemento.

Ejemplo:

                                             $vector = array(2 => “Manzana”, 0 => “Platano”, “Pera”);

Los elementos a los que no se les asigna explícitamente un índice toman la posición secuencial
relativa a la última asignación de posición dentro del array.

www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  19	
  |	
  P á g i n a 	
  
	
  
 
	
  
Arrays Asociativos

A diferencia de los arrays simples, los arrays asociativos (también conocidos como tablas
hash o arrays indexados por cadena) están formados por un conjunto de valores que están
ordenados respecto a un índice de tipo string, es decir, una cadena de caracteres.

De igual manera que ocurre con los arrays simples, podemos utilizar el constructor del lenguaje
array() para definirlos, o bien, hacerlo especificando de forma explícita cada uno de sus
componentes.

Ejemplo:

                                             $vector = array(“animal” => “Perro”, “nombre” => “Valiente”, “raza” => “Labrador”,
                                             “sexo” => “Masculino”);

Arrays Multidimensionales

PHP nos permite definir arrays multidimensionales mediante la combinación de arrays
unidimensionales (que pueden ser tanto de tipo escalar, como asociativos).

Ejemplo:

                                             $matriz[0][0] = “Salud”;
                                             $matriz[0][1] = “Dinero”;
                                             $matriz[1][0] = “Amor”;
                                             $matriz[1][1] = “Sexo”;

                                             $matriz[“peso”][“moneda”] = “Pesos”;
                                             $matriz[“peso”][“cambio”] = 10;
                                             $matriz[“dolar”][“moneda”] = “Dólar”;
                                             $matriz[“dolar”][“cambio”] = “0.1”;

Funciones para arrays

Current(array): Devuelve el valor de la posición actual del puntero dentro del array: todos los
arrays tienen un puntero interno que apunta a la posición del elemento actual con el que se
está trabajando en un momento dado.

Key(array): Devuelve el índice de la posición actual del array pasado como argumento.

Next(array): Devuelve el valor del elemento siguiente al actual (si existe) y avanza el puntero
interno una posición.

Prev(array): Devuelve el valor del elemento anterior al actual (si existe) y retrocede el puntero
interno una posición.

End(array): Coloca el puntero interno en el último elemento de un array escalar.

Reset(array): Devuelve el valor del primer elemento del array y sitúa el puntero interno en su
primera posición.

Each(array): Se usa para recorrer arrays (sobre todo los asociativos), pues devuelve un par de
valores correspondientes a la clave y al valor asociado a esa clave.

List(array): Asigna una lista de variables en una sola operación. Suele utilizarse en
combinación con la función each().




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  20	
  |	
  P á g i n a 	
  
	
  
 
	
  
Array_keys(array): Devuelve las claves que forman el array matriz. Admite un parámetro
opcional que nos permite seleccionar sólo las claves cuyo valor coincida con un patrón dado.

Array_values(array): Devuelve los valores que forman parte del array pasado como
parámetro.

Sort(array): Ordena alfanuméricamente los valores de los elementos de un array de menor a
mayor. Para ordenar de manera inversa, disponemos de la función rsort(array).

Asort(array): Ordena alfanuméricamente los valores de los elementos de un array de mayor a
menor, pero manteniendo la relación existente entre los índices y sus valores asociados.
Arsort(array) realiza la ordenación inversa.

Ksort(array): Ordena alfanuméricamente las claves de un array de menor a mayor
manteniendo las correlaciones entre clave y valor asociado. Krsort(array) realiza la ordenación
inversa.

Array_merge(array1, array2): Combina en un solo array los valores de los arrays que recibe
como argumentos.

Array_pad(array, tamaño, relleno): Devuelve un array igual a matriz, pero modificando su
número de elementos hasta alcanzar la longitud deseada (tamaño) añadiendo nuevos
elementos por la derecha (tamaño es positivo) o por la izquierda (tamaño es negativo).

Array_slice(array, desplazamiento [, int tamaño]): Devuelve los elementos del array que
están situados a partir de una posición determinada por desplazamiento. Opcionalmente,
podemos indicar el total de elementos que queremos.

Array_splice(array, desplz [,tam [array substituto]]): Elimina elementos de un array,
sustituyéndolos opcionalmente por los elementos de otro array (substituto).

Array_push(array, valor1 [, valor2, …]): Inserta uno o más elementos al final del array (pila).

Array_pop(array): Devuelve y elimina el último elemento del array (el que corresponde con la
cima de la pila).

Array_shift(array): Devuelve y elimina el primer elemento del array (el que corresponde con la
base de la pila).

Array_unshift(array, valor1 [, valor2, …]): Inserta uno o más elementos al principio del array.

Array_reserve(array): Devuelve el array pasado como parámetro, pero con sus componentes
en orden inverso.

Range(limite_inf, limite_sup): Devuelve un array con los valores enteros comprendidos entre
el primer argumento y el segundo que recibe la función, ambos inclusive.

Array_count_values(array): Recibe como argumento un array y devuelve otro cuyos índices
son los mismos que los del array original y sus valores asociados son la frecuencia con la que
se repiten dichos valores en el array original.

In_array(elemento_busqueda, array): Con esta función podremos saber si un elemento está
contenido dentro de un array.

Compact(): Esta función recibe como argumento una lista de variables que han sido
previamente definidas, que pueden aparecer como cadenas de caracteres o como arrays y
devuelve un nuevo array en el que los índices son los nombres de las variables y el contenido
de los elementos del array son sus correspondientes valores.

www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  21	
  |	
  P á g i n a 	
  
	
  
 
	
  
5 Funciones

La sintaxis de la declaración de una función es la siguiente:

                                             Function nombreFunción([parametro1 [,…]]) {
                                               [sentencias]
                                             }

Una vez declarada una función, ésta no se ejecuta hasta que se le llama desde cualquier parte
del script. Para llamar a una función, sólo hay que escribir una sentencia que contenga el
nombre de la función y, entre paréntesis, los valores de los argumentos de llamada de ella.

                                             <?php
                                             Function cuentaAtras() {
                                               For($i = 10; $i > 0; $i--) {
                                                echo $i.”…<br />“;
                                               }
                                               Echo “!Boom!”;
                                             }
                                             ?>

                                             <?php
                                               cuentaAtras();
                                             ?>

En ocasiones, necesitaremos definir funciones que aceptan parámetros o argumentos. De esta
forma conseguimos que la función sea más utilizable dentro del propósito general para el que
está definida.


                                             <?php
                                             Function cuentaAtras($inicio) {
                                               For($i = $inicio; $i>0; $i--)
                                                 echo $i.”…<br />”;
                                               echo “!Boom!”;
                                             }

                                             cuentaAtras(5);

                                             ?>

Variables globales son todas aquéllas que se definen fuera del cuerpo de una función y son
accesibles, en general, desde cualquier punto del código.

En PHP, las variables globales deben ser declaradas globales dentro de la función si van a ser
utilizados dentro de dicha función, anteponiendo a su definición la palabra reservada global. Un
segundo método para acceder a las variables globales desde un ámbito local es usando el
array $GLOBALS (es un array asociativo con el nombre de la variable global como clave y los
contenidos de dicha variable como el valor del elemento del array).

Variables locales aparecen definidas dentro del cuerpo de una función y sólo pueden ser
accedidas desde dentro de esta función. Cualquier variable que se use dentro de una función
está, por defecto, limitada al ámbito local de la función. Esto quiere decir que, si declaramos
una variable local con el mismo nombre que una variable global, dentro de la función
trabajaremos con la versión local de la variable.

                                             <?php
                                             $inicio = 0;


www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  22	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                             $final = 9;

                                             Function cuentaAtras() {
                                              Global $final; #Variable global.
                                               $inicio = 7; #Variable local.
                                               Static $num = 0; #Variable estática

                                                          For(;$inicio>$final;$inicio--)
                                                                     Echo $inicio.”…<br>”;
                                                          $num++;
                                                          Echo “!Boom -$num-“;
                                             }

                                             cuentaAtras(); //$num vale 1.
                                             cuentaAtras(); //$num vale 2.
                                             ?>

Del mismo modo que las funciones pueden recibir valores, también pueden devolverlos. La
devolución de un valor desde una función trabaja de igual forma que la devolución de un valor
en una expresión, de manera que el valor devuelto desde una función puede ser asignado a
una variable o utilizado dentro de una expresión. Se puede devolver cualquier tipo de valores
incluyendo listas y objetos, pero sólo un único valor; para devolver múltiples valores,
deberemos utilizar un array.


                                             <?php
                                             Function ElMayor($dato1, $dato2, $dato3) {
                                               $elmayor = ($dato1 > $dato2) ? $dato1 : $dato2;
                                               $elmayor = ($elmayor > $dato3) ? $elmayor : $dato3;
                                               Return $elmayor;
                                             }

                                             Echo “El Mayor de 17, 5 y 9 es “.ElMayor(17,5,9).””;
                                             ?>

Se dice que una función es recursiva cuando en algún punto de su cuerpo se llama a sí misma.
Hay que tener cuidado al escribir una función recursiva, ya que puede ocurrir que se llame a sí
misma indefinidamente. Por tanto, es esencial asegurarse de implementar una forma adecuada
de terminar la recursión: es lo que se denomina como condición de parada.

La recursión nos sirve para solucionar algunos problemas complejos; un ejemplo típico de
recursión es hallar el factorial de un número.

                                             <?php
                                             Function Factorial($numero) {
                                               If($numero == 0) return 1;
                                               Return $numero * Factorial($numero – 1);
                                             }

                                             Function Factor_Iterativo($numero) {
                                               Echo “$numero! = ”;
                                               For($factorial = 1; $numero > 1; $numero--) {
                                                 $factorial *= $numero;
                                                 Echo “$numero x ”;
                                               }
                                               Echo “1 = $factorial”;
                                               return $factorial;
                                             }


www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  23	
  |	
  P á g i n a 	
  
	
  
 
	
  

                                             Echo Factorial(5);
                                             Echo Factor_Iterativo(5);
                                             ?>

6 Funciones de fecha y hora

Es muy importante en muchos problemas y aplicaciones llevar un control con la fecha y la hora
en un determinado momento, o bien, conocer la fecha para saber si tenemos que ejecutar un
programa u otro…; existen muchas circunstancias donde es necesario conocer estos datos.
PHP nos ofrece una gran variedad de funciones para abordar con mayor rapidez y de una
forma más sencilla los distintos problemas relacionados con el manejo de fechas y tiempos que
nos puedan ir saliendo a la hora de realizar nuestros programas.

En casi todos los sistemas informáticos hay una fecha de inicio común, a partir de la cual se
empieza a contar el tiempo. En el caso de los sistemas UNIX la fecha elegida como comienzo
es el día 1 de enero de 1970 a las 00:00:00 GMT, fecha que se conoce como el principio de la
era UNIX. El contador de tiempo se conoce como marca de tiempo (timestamp) y representa el
número de segundos transcurridos desde una fecha dada. En PHP todas las funciones de
fecha/hora que trabajan con marcas de tiempo hacen referencia a esta fecha.

Time(): Obtiene la marca de tiempo UNIX actual.
Checkdate(): Valida una fecha en formato gragoriano.
Date(): Da formato a la hora y la fecha locales.
Getdate(): Obtiene información sobre la fecha y hora locales.
Gettimeofday(): Obtiene la hora actual.
Gmdate(): Formatea la fecha y la hora a formato GMT.
Gmmktime(): Obtiene la marca de tiempo UNIX de una fecha con formato GMT.
Gmstrftime(): Formatea la fecha y hora con formato GMT a las características locales.
Microtime(): Obtiene la marca de tiempo UNIX actual en microsegundos.
Mktime(): Obtiene la marca de tiempo UNIX para una fecha dada.
Strftime(): Formatea la hora actual de acuerdo con las características locales.
Strtotime(): Traduce una fecha u hora descrita en inglés a su correspondiente marca de
tiempo UNIX.

Hay una serie de parámetros que tienen un significado propio y son reconocidos dentro de la
cadena de formato.

                        Valores                                                                                                                                                                                                                                                          Descripción

                                            a                                                  “a.m.” o “p.m.”

                                           A                                                   “A.M.” o “P.M.”

                                           d                                                   Día del mes con dos dígitos (de 01 a 31)

                                           D                                                   Día de la semana con tres caracteres.

                                           F                                                   Nombre del mes

                                           h                                                   Hora en formato 01 a 12

                                           H                                                   Hora en formato 00 a 23

                                           g                                                   Hora en formato 1 a 12 (sin cero)

                                          G                                                    Hora en formato 0 a 23 (sin cero)


www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  24	
  |	
  P á g i n a 	
  
	
  
 
	
  
                                             i                                                 Minutos de 00 a 59

                                             j                                                 Día del mes en formato 1 a 31 (sin cero)

                                             l                                                 Día de la semana, en texto completo

                                           L                                                   1: si es año bisiesto, 0: si no es un año bisiesto.

                                          m                                                    Mes de 01 a 12

                                          M                                                    Mes con tres caracteres

                                           n                                                   Mes de 1 a 12

                                            s                                                  Segundos de 00 a 59

                                           S                                                   Sufijo ordinal en inglés (“th”, “nd”)

                                             t                                                 Número de días del mes dado, de 28 a 31

                                           U                                                   Segundos transcurridos desde el valor de inicio (01-01-1970)

                                          w                                                    Día de la semana de 0 (domingo) a 6 (sábado)

                                            y                                                  Año con cuatro dígitos

                                           Y                                                   Año con dos dígitos

                                            z                                                  Día del año de 0 a 365

                                           Z                                                   Diferencia horaria en segundos de 43200 a 43200

7 Cookies y sesiones
Los usuarios normalmente completan un formulario modificando sus controles (introduciendo
texto, seleccionando objetos de un menú, etc.), antes de enviar el formulario a un agente para
que lo procese (por ejemplo, a un servidor Web, a un servidor de correo, etc.).

Todos los controles presentes en un formulario, para que sean efectivos, deben aparecer
incluidos dentro de un elemento form de HTML. La etiqueta FORM actúa, por tanto, como
contenedor de controles. Pero, además, especifica entre otros:

-El programa que manejará los datos del formulario una vez haya sido completado y enviado
(atributo action). El programa receptor debe ser capaz de interpretar las parejas nombre/valor
para poder hacer uso de ellas.

-La forma en la que se enviarán los datos del usuario al servidor (atributo method).

-El tipo MIME usado para enviar los datos del formulario (atributo enctype). El valor por defecto
de este atributo es application/x-www-form-urlencode.

El atributo method del elemento form especifica el método HTTP usado para enviar los datos
del formulario al agente procesador. Este atributo puede tener dos valores:

Get: El conjunto de datos del formulario se agrega (con el carácter “?” como separador) al URI
especificado en el atributo action (el programa que tratará los datos) y este nuevo URI se envía
al agente procesador.


www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  25	
  |	
  P á g i n a 	
  
	
  
 
	
  
Post: Los datos del formulario se incluyen en el cuerpo del mensaje que se envía al agente
procesador.

El conjunto de datos del formulario que se envía al agente servidor es una secuencia de
parejas nombre_de_control/valor construida a partir de los elementos del formulario. Cada uno
de los controles tiene asociado un nombre que viene dado por su atributo name. De igual
forma, cada control tiene tanto un valor inicial, como un valor actual, que son ambos cadenas
de caracteres. En general (excepto en el caso del elemento textarea), el valor inicial de un
control puede especificarse con el atributo value del elemento de control. El valor actual del
control se iguala en un primer momento al valor inicial y, a partir de ese momento, el valor
actual del control puede ser modificado a través de la interacción con el usuario y/o mediante
scripts que se ejecuten en el cliente. El valor inicial de un control no cambia. Así, cuando se
reinicializa el formulario, el valor actual de cada control se iguala a su valor inicial. Si el
elemento de control no tiene un valor inicial, se le asigna el valor nulo.

                                                 Variable                                                                                                                                                                                                                                                                Contenido

                                                     _POST                                                                                          Array que contienen las variables pasadas a través del método
                                                                                                                                                    POST. Su uso es análogo al array HTTP_POST_VARS de versiones
                                                                                                                                                    anteriores a la 4.2.0 de PHP (obsoleto).

                                                         _GET                                                                                       Array que contiene las variables pasadas a través del método GET.
                                                                                                                                                    Su uso es análogo al array HTTP_GET_VARS de versiones
                                                                                                                                                    anteriores a la 4.2.0 de PHP (obsoleto).

                                        _REQUEST                                                                                                    Array que contiene las variables pasadas a través de cualquier
                                                                                                                                                    mecanismo de entrada.

7.1 Cookies
Básicamente, las cookies son ficheros de texto ASCII que almacenan información siguiendo
una estructura básica de pares identificador = valor. Su tamaño es relativamente pequeño, no
superando en ningún caso los 4 Kb. El modo en que se almacenan, los directorios en que se
almacenan y el resto de características propias de una operación de lectura/escritura sobre
disco dependen de gran manera del sistema operativo y del navegador que tenga instalado el
equipo cliente. De igual forma, la posibilidad de hacer uso de cookies depende que el software
utilizado para acceder a la aplicación Web (normalmente un navegador) cuente con esta
característica y que, además, esté habilitada.

PHP propone una sola función para el manejo básico de cookies (creación y borrado) cuya
sintaxis es la siguiente:

                                             Setcookie(Nombre_Cookie, valor, tiempo_de_vida); #Crea.
                                             Setcookie(Nombre_Cookie); #Elimina la cookie.

Para poder acceder a los contenidos de las cookies, PHP proporciona una variable global
consistente en un array asociativo formado por todas las variables pasadas a través de las
cookies. Es la variable $_COOKIE:

                      $_COOKIE[“nombre_de_la_cookie”];

7.2 Sesiones
El modo principal de activar el uso de sesiones cuando lo deseemos es hacer uso de la función
session_start().




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  26	
  |	
  P á g i n a 	
  
	
  
 
	
  
Esta función crea una nueva sesión y genera el nuevo identificador, o retoma la sesión en caso
de que existiera, utilizando el identificador de sesión que se había propagado haciendo uso de
la URL o de cookies.

Session_register(nombre [, nombre]): Registra una nueva variable global para la sesión
actual. En caso que no exista la sesión, la crea realizando una llamada implícita a la función
session_start().

Session_is_registered(nombre): Devuelve true cuando la variable cuyo nombre se ha pasado
como argument a la llamada está registrada dentro de la sesión actual.

Session_unregister(nombre): Evita que la variable que se ha pasado como argumento a la
llamada sea salvada como parte de la sesión actual, es decir, la elimina de la sesión, pero
sigue siendo una variable del script donde se ejecuta (para esto tendríamos que llamar a la
función unset()).




www.zanphp.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  27	
  |	
  P á g i n a 	
  
	
  

Más contenido relacionado

PDF
Historia de PHP
Duglas Oswaldo Moreno Mendoza
 
PPTX
Php ppt
Pepe Avelar
 
PDF
MAnual de php básico
Cleote
 
PPT
PHP
jgbd127
 
PDF
Manual Completo Php 5
Pablo Morales
 
PPT
Introduccion a php
Carlos Lozano Zapata
 
PDF
Presentacion curso de php
Guillermo Jimenez
 
PPTX
Introducción a PHP
Carlos Hernández Garciísta
 
Php ppt
Pepe Avelar
 
MAnual de php básico
Cleote
 
PHP
jgbd127
 
Manual Completo Php 5
Pablo Morales
 
Introduccion a php
Carlos Lozano Zapata
 
Presentacion curso de php
Guillermo Jimenez
 
Introducción a PHP
Carlos Hernández Garciísta
 

La actualidad más candente (20)

PDF
Programacion Internet
lucilazc
 
PDF
introduccion al Lenguaje php
rmonago
 
PPT
DEFINICION DE Php
NelsonDaniloEspitiaBetancur
 
PPTX
Historia y características de php
Sam Meci
 
PPTX
Introducción a programación con PHP
yanburbano
 
PDF
Curso Avanzado PHP para EHU/UPV
Irontec
 
PPT
PHP IUTE
guestefc95b
 
DOCX
Php
lifeth
 
PPT
Manual+php+básico
Santiago L Caballero Navia
 
DOCX
Tutorial php basico
Yo ♥ Tacna
 
PDF
Programacion - Php
PROD LARD
 
PPTX
Trabajo especial copy
Margie Dearce
 
PPT
Php
arkangel8801
 
PDF
Programacion web-Lenguajes del lado del servidor
Jose Felix Moran Agusto
 
PDF
Php apesteguia
tonytenorio2
 
PPTX
Introducción a PHP
jdaniel_7ez
 
ODP
Desarrollo de aplicaciones web con PHP y symfony
Juan Eladio Sánchez Rosas
 
Programacion Internet
lucilazc
 
introduccion al Lenguaje php
rmonago
 
DEFINICION DE Php
NelsonDaniloEspitiaBetancur
 
Historia y características de php
Sam Meci
 
Introducción a programación con PHP
yanburbano
 
Curso Avanzado PHP para EHU/UPV
Irontec
 
PHP IUTE
guestefc95b
 
Php
lifeth
 
Manual+php+básico
Santiago L Caballero Navia
 
Tutorial php basico
Yo ♥ Tacna
 
Programacion - Php
PROD LARD
 
Trabajo especial copy
Margie Dearce
 
Programacion web-Lenguajes del lado del servidor
Jose Felix Moran Agusto
 
Php apesteguia
tonytenorio2
 
Introducción a PHP
jdaniel_7ez
 
Desarrollo de aplicaciones web con PHP y symfony
Juan Eladio Sánchez Rosas
 
Publicidad

Destacado (20)

PDF
Manual basico de PHP
Gower Jose Chacon Romero
 
PPT
Conociendo PHP
Antonio Kobashikawa Carrasco
 
PPTX
Introducción a PHP
Jose Emilio Labra Gayo
 
PDF
Curso MATLAB
educadorrr
 
PDF
2015 Upload Campaigns Calendar - SlideShare
SlideShare
 
PPTX
What to Upload to SlideShare
SlideShare
 
PPTX
Costos industriales y sus aplicaciones
poeta poeta poeta
 
PDF
Getting Started With SlideShare
SlideShare
 
PDF
Introduccion a PHP
Fabio Fabre
 
PDF
Introducción a php
alan moreno
 
PDF
Manual oficial de php5
Oscar Sibaja
 
PDF
Arquitectura cliente servidor
Maria Isabel Mora Garcia
 
PPTX
Arquitectura cliente servidor
Miguel Orquera
 
PDF
Arquitectura cliente servidor
Edwin Gauta Villamizar
 
PDF
Guia8 java
odelys2003
 
PDF
Guia N3 Proyectos Web Php Css, Js
Jose Ponce
 
PDF
Guia N5 Proyectos Web Consultas Php Y My Sql
Jose Ponce
 
PDF
Guia N1 Proyectos Web Html
Jose Ponce
 
PDF
Guia7 java
odelys2003
 
Manual basico de PHP
Gower Jose Chacon Romero
 
Introducción a PHP
Jose Emilio Labra Gayo
 
Curso MATLAB
educadorrr
 
2015 Upload Campaigns Calendar - SlideShare
SlideShare
 
What to Upload to SlideShare
SlideShare
 
Costos industriales y sus aplicaciones
poeta poeta poeta
 
Getting Started With SlideShare
SlideShare
 
Introduccion a PHP
Fabio Fabre
 
Introducción a php
alan moreno
 
Manual oficial de php5
Oscar Sibaja
 
Arquitectura cliente servidor
Maria Isabel Mora Garcia
 
Arquitectura cliente servidor
Miguel Orquera
 
Arquitectura cliente servidor
Edwin Gauta Villamizar
 
Guia8 java
odelys2003
 
Guia N3 Proyectos Web Php Css, Js
Jose Ponce
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Jose Ponce
 
Guia N1 Proyectos Web Html
Jose Ponce
 
Guia7 java
odelys2003
 
Publicidad

Similar a Manual de PHP Basico (20)

PDF
Lenguaje de Programación PHP
Jomicast
 
PDF
Taller php
esmartcrimt
 
PDF
Taller Php
Luis Alvarez Meneses
 
PDF
Curso Php
larasaregune
 
PDF
Curso php y_mysql
Vero Pailiacho
 
PPTX
Caracteristicas generales de PHP
Miguel Pinto
 
PDF
Curso php-my sql-clase-2
Juan Carlos Catura Arapa
 
PDF
Carrera php programmer no costo
Servicios Educativos Softrain C.A.
 
PPTX
Introduccion A Php
uts
 
PPTX
Introduccion A Php
uts
 
PPTX
Introduccion A Php
uts
 
PDF
Guia programacionwebbasicophp
lissette_torrealba
 
PDF
Curso online PHP
Cursodirecto.com
 
PDF
Curso online-php-lw
Cursodirecto.com
 
PPTX
Manual Programación II nivel medio superior.pptx
OLIVERACAMACHOJOSEDE
 
PPT
Introduccion al PHP para principiantes y estudiantes
JessRobertoZrateDeMu
 
PPTX
Php 4.3
Katherine20Moran
 
PPT
Curso php y_my_sql
Carlos Lozano Zapata
 
PDF
Curso php desde_cero
Jose Antonio Arias Luis
 
Lenguaje de Programación PHP
Jomicast
 
Taller php
esmartcrimt
 
Curso Php
larasaregune
 
Curso php y_mysql
Vero Pailiacho
 
Caracteristicas generales de PHP
Miguel Pinto
 
Curso php-my sql-clase-2
Juan Carlos Catura Arapa
 
Carrera php programmer no costo
Servicios Educativos Softrain C.A.
 
Introduccion A Php
uts
 
Introduccion A Php
uts
 
Introduccion A Php
uts
 
Guia programacionwebbasicophp
lissette_torrealba
 
Curso online PHP
Cursodirecto.com
 
Curso online-php-lw
Cursodirecto.com
 
Manual Programación II nivel medio superior.pptx
OLIVERACAMACHOJOSEDE
 
Introduccion al PHP para principiantes y estudiantes
JessRobertoZrateDeMu
 
Curso php y_my_sql
Carlos Lozano Zapata
 
Curso php desde_cero
Jose Antonio Arias Luis
 

Último (20)

PDF
Excel avanzado trabajo grupal tecnologia
mapaulahiguita
 
PDF
0621 LOS MATERIALES Y SUS USOS .2º CICLO_compressed.pdf
AndreaAlegre18
 
PDF
DIAGRAMA DE PARETO M Camila Duque Loaiza
MariacamilaDuqueloai
 
PDF
Trabajo de tecnologia en equipo (1).pdf
jjfch3110
 
PDF
Chile Claro Swap Project Guidebook Version 1.4.1b.pdf
DarkoAlmanzaTrujillo
 
PPTX
Ingeniería Genética y Obtención de Insulina por Escherichia.pptx
ElbaCristinaMendoza
 
PPTX
JuarezGonzalez_Maria_M1S3AI6.docs https://docs.google.com/presentation/d/1-
susana0271
 
DOCX
Informe de Tecnologia Diagrama de Pareto Juan Martinez, Alexandra Delgado, L...
edepisabellanaranjo
 
PDF
Trabajo Tecnología Diagrama De Pareto.pdf
srsantiagof09
 
PDF
Distribución de frecuencias y Diagrama de Pareto en Exce (2).pdf
samuelcuaran
 
PDF
actividad tecnologia (1).pdflksjksIUQWDIUWEGDHI
anavallejo2323
 
PDF
Trabajo Tecnología #2 Periodo (2).pdfjdjfjf
ssuser57b6e41
 
PPTX
CamposFlores_Fernando_M1S3AI6-PrepaLineaSEP
231464482
 
PDF
Trabajo grupal segundo periodo Tecnología .pdf
edepemanuelflechas
 
PPTX
Intro to 3D Printing Credit 1(Span).pptx
rlink3
 
PPTX
Telecomunicaciones proyeccion de ventas 2025.pptx
miguelolivarren2
 
PDF
VelezOrtiz_Yadira_M1S3AI6 Presentación digital
Yadira Elizabeth Vélez Ortiz
 
PDF
Diagrama de Pareto en PDF pareto el mejor
zaidmarinb11
 
PDF
Tecnología 2.0 (1).pdf, diagrama de pareto
paulavallejo21
 
PDF
Excel Avanzado ..........................
Alejo857214
 
Excel avanzado trabajo grupal tecnologia
mapaulahiguita
 
0621 LOS MATERIALES Y SUS USOS .2º CICLO_compressed.pdf
AndreaAlegre18
 
DIAGRAMA DE PARETO M Camila Duque Loaiza
MariacamilaDuqueloai
 
Trabajo de tecnologia en equipo (1).pdf
jjfch3110
 
Chile Claro Swap Project Guidebook Version 1.4.1b.pdf
DarkoAlmanzaTrujillo
 
Ingeniería Genética y Obtención de Insulina por Escherichia.pptx
ElbaCristinaMendoza
 
JuarezGonzalez_Maria_M1S3AI6.docs https://docs.google.com/presentation/d/1-
susana0271
 
Informe de Tecnologia Diagrama de Pareto Juan Martinez, Alexandra Delgado, L...
edepisabellanaranjo
 
Trabajo Tecnología Diagrama De Pareto.pdf
srsantiagof09
 
Distribución de frecuencias y Diagrama de Pareto en Exce (2).pdf
samuelcuaran
 
actividad tecnologia (1).pdflksjksIUQWDIUWEGDHI
anavallejo2323
 
Trabajo Tecnología #2 Periodo (2).pdfjdjfjf
ssuser57b6e41
 
CamposFlores_Fernando_M1S3AI6-PrepaLineaSEP
231464482
 
Trabajo grupal segundo periodo Tecnología .pdf
edepemanuelflechas
 
Intro to 3D Printing Credit 1(Span).pptx
rlink3
 
Telecomunicaciones proyeccion de ventas 2025.pptx
miguelolivarren2
 
VelezOrtiz_Yadira_M1S3AI6 Presentación digital
Yadira Elizabeth Vélez Ortiz
 
Diagrama de Pareto en PDF pareto el mejor
zaidmarinb11
 
Tecnología 2.0 (1).pdf, diagrama de pareto
paulavallejo21
 
Excel Avanzado ..........................
Alejo857214
 

Manual de PHP Basico

  • 1.     Curso-Taller: Desarrollo de Sitios Web con PHP PRESENTACIÓN Aunque existe una multitud de lenguajes y entornos de desarrollo concebidos para Internet, PHP se ha convertido en uno de los lenguajes, del lado servidor, más ampliamente utilizados para el desarrollo de páginas dinámicas junto con ASP, JSP, ColdFusion y Perl. En el último año, el número de servidores que utilizan PHP se ha disparado, logrando situarse cerca de los 20 millones de sitios, esto es, más del 30% de los dominios en internet. En PHP se combinan muchas características que contribuyen notablemente a su masiva utilización; entre otras, está el hecho de ser un software de libre distribución y multiplataforma convertido en el complemento ideal para el popular tándem Linux-Apache en el desarrollo de sitios Web. Pero lo más destacable del lenguaje, y una de las características que más han influido en su popularización, es su sencillez de uso para los programadores principiantes (se pueden desarrollar aplicaciones sencillas en un corto intervalo de tiempo) y sus posibilidades avanzadas para el profesional (Comunicación con bases de datos, comunicación vía sockets, generación de gráficos, etc.). www.zanphp.com                                                                                                                                                                                                                                  1  |  P á g i n a    
  • 2.     Índice Introducción 1. Sintaxis básica 1.1. Comentarios 1.2. Declaración de variables 1.3. Variables predefinidas 1.4. Tipos de datos 1.4.1.Cadenas 1.4.2.Arrays 1.5. Funciones para variables 1.6. Constantes 1.6.1.Constantes predefinidas 1.7. Operadores 1.7.1.Operadores aritméticos 1.7.2.Operadores de asignación 1.7.3.Incremento y decremento 1.7.4.Operadores de comparación 1.7.5.Operadores lógicos 2. Estructuras de control 2.1. Sentencias condicionales 2.1.1.If 2.1.2.If…else 2.1.3.If…elseif 2.1.4.If compacto 2.1.5.Switch 2.1.6.For 2.1.7.Foreach 2.1.8.While 2.1.9.Include 2.1.10. Require 3. Cadenas 4. Arrays 5. Funciones 6. Funciones de fecha y hora 7. Cookies y sesiones 7.1. Cookies 7.2. Sesiones 8. Bases de datos 8.1. MySQL 8.2. Creación de una base de datos 8.3. Creación de tablas 8.4. Tipos de datos 8.5. Conexión a una base de datos con PHP 8.6. Añadir registros 8.7. Eliminar registros 8.8. Modificar registros 8.9. Funciones de PHP para el manejo de MySQL 9. PHP5 9.1. Clases y Objetos www.zanphp.com                                                                                                                                                                                                                                  2  |  P á g i n a    
  • 3.     9.1.1.Constructores 9.1.2.Destructores 9.1.3.Modificadores de acceso 9.1.4.Nuevos métodos 9.1.5.Clonación de objetos 9.1.6.Clases abstractas 9.1.7.Interfaces 9.1.8.Operador InstaceOf 9.1.9.Autocarga de clases 9.1.10. Acceso a subojetos www.zanphp.com                                                                                                                                                                                                                                  3  |  P á g i n a    
  • 4.     Introducción PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdof en 1994; sin embargo la implementación principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. PHP es un lenguaje interpretado de propósito general ampliamente usado y que está diseñado especialmente para desarrollo web y puede ser embebido dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. PHP se encuentra instalado en más de 20 millones de sitios web y en un millón de servidores, aunque el número de sitios en PHP ha declinado desde agosto de 2005. Es también el módulo Apache más popular entre las computadoras que utilizan Apache como servidor web. La más reciente versión principal del PHP fue la versión 5.2.6 de 1 de mayo de 2008. www.zanphp.com                                                                                                                                                                                                                                  4  |  P á g i n a    
  • 5.     1. Sintaxis básica Objetivo particular: Al finalizar el tema, el participante será capaz de conocer la sintaxis básica y particularidades del lenguaje PHP. Introducción: PHP es un lenguaje de programación muy poderoso y a la vez sencillo de utilizar, gracias a esto se debe la gran popularidad que ha tenido los últimos años y aún sigue evolucionando. Para crear un documento en PHP primeramente se escriben los delimitadores <?php y ?>. La extensión para los archivos de PHP es “.php”. 1.1 Comentarios Existen 3 tipos de comentarios en PHP: //Comentario para una línea. ############ #Comentario ############ /* *Comentarios para *varias líneas */ 1.2 Declaración de variables Para crear una variable en PHP simplemente se escribe un $ seguido del nombre de la variable, por ejemplo: $a = 1; $fruta = “Manzana”; $MiVariable = “Valor”; PHP diferencia entre mayúsculas y minúsculas en las variables. Las variables no pueden comenzar con número, no pueden tener espacio, sin comas ni caracteres especiales. $valor actual [MAL] $#Datos X [MAL] $2Saldos X [MAL] $Prueba, Valor [MAL] Cuando utilizamos comillas dobles, podemos incluir dentro de la cadena nombres de variables que serán evaluados (sustituidos por sus respectivos valores) a la hora de mostrar la información. Si introducimos nombres de variables dentro de una cadena encerrada entre comillas simples, la variable no será evaluada. www.zanphp.com                                                                                                                                                                                                                                  5  |  P á g i n a    
  • 6.     1.3 Variables predefinidas • $PHP_SELF; • $_COOKIES; • $_GET; • $_POST; • $_SERVER; • $_SESSION; • $_FILES; 1.4 Tipos de datos En PHP existen todos los tipos de datos: numérico, decimal, boolean, string, array, objeto, etc. La ventaja de PHP sobre otros lenguajes es que no es necesario declarar las variables para poderlas utilizar, simplemente se crean cuando se desean usar. PHP cuenta con un convertidor automático de tipos de datos, es decir PHP puede hacer sin ningún problema la siguiente operación y no marcara ningún error: $a = 3; //valor numérico. $b = “5”; //valor string. echo ($a + $b) //Imprime 8. 1.4.1 Cadenas Para crear un valor tipo cadena (string) simplemente se escribe el contenido de la variable entre comillas dobles (“”) o comillas simples (‘’). $nombre = “Carlos”; $apellido = “Santana”; echo $nombre.$apellido; //Imprime: Carlos Santana Código de escape Significado b Espacio hacia atrás (backspace). f Cambio de página (form feed). n Cambio de línea (line feed). r Retorno de carro (carriage return) t Tabulación ’ Comilla simple ” Comilla doble www.zanphp.com                                                                                                                                                                                                                                  6  |  P á g i n a    
  • 7.     1.4.2 Arrays Los arrays o matrices son estructuras que permiten el almacenamiento de un conjunto de datos bajo un mismo nombre; son una construcción tradicional de los lenguajes de programación. Podemos definir un array como un conjunto ordenado de elementos identificados por un índice (la posición del elemento dentro de esta colección ordenada), de modo que en cada posición marcada por un índice el array contiene un valor. Se pueden construir tantos índices como se quiera, aunque el uso habitual de los arrays es en forma de matriz unidimensional. La longitud del array se modifica de forma dinámica siempre que le añadimos un nuevo elemento. En PHP, los arrays pueden estar compuestos de elementos de diferente naturaleza y su primer índice o posición es la 0. Además, existen unos arrays especiales en PHP denominados asociativos en los que el índice es un valor de tipo string, de modo que cada posición está definida por el par (clave, valor), pudiendo acceder al contenido (valor) a través de la clave. Ejemplo de array escalar: <?php $array[0] = “Mi Nombre”; $array[1] = “es Carlos y tengo”; $array[2] = “20 años”; $array[] = “y estudio telemática”; //Lo insertara en la posición 3. for($i = 0; $i <= count($array) – 1; $i++) { echo $array[$i].” “; } ?> Ejemplo de array asociativo: <?php $array[“Nombre”] = “Mi Nombre”; $array[“Es”] = “es Carlos y tengo”; $array[“Tengo”] = “20 años”; $array[“Estudio”] = “y estudio telemática”; //Lo insertara en la posición 3. echo $array[“Nombre”].$array[“Es”].$array[“Tengo”].$array[“Estudio”]; ?> 1.5 Funciones para variables Gettype (variable): Devuelve el tipo de dato pasado como parámetro, pudiendo devolver como valor: integer, float, string, array, class, object y unknown type. Settype (variable, tipo): Establece el tipo de dato a guardar en una variable. Con esta función podemos realizar conversiones de un tipo de datos a otros. Devolverá true si ha tenido éxito; en caso contrario devolverá false. Isset (variable): Indica si una variable ha sido inicializada con un valor, en cuyo caso devuelve true, y en caso contrario false. Unset (Variable): Destruye una variable liberando los recursos dedicados a dicha variable. Es necesario indicar como parámetros el nombre de la variable a destruir. Empty (variable): Devuelve true si la variable aún no ha sido inicializada o bien tiene un valor de 0 o es una cadena vacía y, en caso contrario devuelve false. www.zanphp.com                                                                                                                                                                                                                                  7  |  P á g i n a    
  • 8.     Is_Int (variable), is_integer (variable), is_long (variable): Estas funciones devuelven true si la variable pasada como argumento es de tipo integer; caso contrario devuelve false. Is_float (var), is_real (var), is_double (var): Estas funciones regresan true si la variable es de tipo float; caso contrario regresa false. Is_numeric (var): True si es un número o cadena numérica. Is_bool (var): True si la variable es de tipo lógico. Is_array (var): True si la variable es un array. Is_string (var): True si la variable es de tipo string. Is_object (var): True si la variable es un objeto. Intval (var, base), floatval (var), strval (var): Estas funciones sirven para realizar conversiones de tipos (casting), de modo que convierten a integer, float, o string, respectivamente, el valor de la variable que se le pasa como parámetro. En particular, la función intval() puede recibir además un segundo parámetro que representa la base a utilizar en la conversión (10 = decima, 8 = octal y 16 = hexadecimal), tomando por defecto la base 10 de los números decimales. 1.6 Constantes Una constante es una variable que mantiene el mismo valor durante la ejecución del programa. Se puede asegurar que la constante mantiene siempre el mismo valor; en ninguna parte del script se puede cambiar el valor de una constante una vez que se define. De hecho, los intentos de cambio provocan errores. Define (constante, valor): Esta función nos permite crear una constante asignándole su nombre y su valor a través de los parámetros que recibe. Defined (constante): Esta función devuelve true si la constante está definida y existe. 1.6.1 Constantes Predefinidas Constante Significado PHP_VERSION Cadena que representa la versión del intérprete de PHP en uso. PHP_OS Cadena con el nombre del sistema operativo con el que se está ejecutando el intérprete de PHP. TRUE Verdadero. FALSE Falso. E_ERROR Información sobre errores distintos a los de interpretación del cual no es posible recuperarse. www.zanphp.com                                                                                                                                                                                                                                  8  |  P á g i n a    
  • 9.     E_PARSE Informa que el intérprete encontró una sintaxis inválida en el archivo de comandos. Finaliza la ejecución. E_NOTICE Informa que se produjo algo incorrecto que puede provenir o no de un error. La ejecución continúa. E_WARNING Denota un error que no impide que continúe la ejecución. E_ALL Conjunto con todos los errores que se han producido. 1.7 Operadores Los operadores en PHP son muy parecidos a los de otros lenguajes como C, Java y Javascript. Se utilizan para determinar un valor, o bien, para obtener un valor final a partir de uno o más operandos. Podemos encontrar varios tipos de operadores. 1.7.1 Operadores Aritméticos Estos operadores funcionan igual que en la aritmética básica y se pueden aplicar a las variables y constantes numéricas. Son los siguientes: Operador Ejemplo Descripción + $a + $b Suma dos operandos. - $a - $b Resta dos operandos. * $a * $b Multiplica dos operandos. / $a / $b Divide dos operandos. % $a % $b Resto de la división entera 1.7.2 Operadores de asignación El operador de asignación más utilizado es “=”; su función básica es asignar un valor a una variable, para que de este modo se pueda conservar dicho valor en memoria. El operador de asignación es un operador binario que siempre toma la forma: Variable = Expresión Este operador de asignación hace que la variable de la izquierda tome el valor de la expresión de la derecha. PHP soporta otros operadores de asignación, que realmente son una combinación del operador de asignación básico con operadores aritméticos y con el operador de concatenación de cadenas. www.zanphp.com                                                                                                                                                                                                                                  9  |  P á g i n a    
  • 10.     Operador Ejemplo Descripción = $a = $b $a toma el valor de $b += $a += $b Equivale a: $a = $a + $b -= $a -= $b Equivale a: $a = $a - $b *= $a *= $b Equivale a: $a = $a * $b /= $a /= $b Equivale a: $a = $a / $b %= $a %= $b Equivale a: $a = $a % $b .= $a .= $b Equivale a: $a = $a . $b 1.7.3 Incremento y decremento Al igual que otros lenguajes de programación como C, PHP soporta operadores específicos para incrementar y decrementar el valor de las variables. Además, el momento de su ejecución dependerá de la posición en la que aparezcan respecto de la variable a la que son aplicados. Operador Ejemplo Descripción ++$a Preincremento: Incrementa $a ++ en uno y después devuelve $a. $a++ Postincremento: Devuelve $a y después incrementa en uno $a. --$a Predecremento: Decrementa $a -- en uno y después devuelve $a. $a-- Postdecremento: Devuelve $a y después Decrementa en uno $a. 1.7.4 Operadores de comparación Operador Ejemplo Descripción == $a == $b Los operandos son iguales. != $a != $b Los operandos son distintos. === $a === $b Los operandos son idénticos: iguales y del mismo tipo. !== $a !== $b Los operandos no son iguales o del mismo tipo. El operando de la izquierda es < $a < $b menor que el operando de la derecha. El operando de la izquierda es > $a > $b menor o igual que el operando de www.zanphp.com                                                                                                                                                                                                                                  10  |  P á g i n a    
  • 11.     la derecha. .<= $a <= $b El operando de la izquierda es menor o igual que el de la derecha. El operando de la izquierda es >= $a >= $b mayor o igual que el de la derecha. 1.7.5 Operadores lógicos Los operadores lógicos (también llamados operadores booleanos) se utilizan conjuntamente con expresiones que devuelven valores lógicos. Con estos operadores se pueden combinar varias condiciones y evaluarlas en una sola expresión. Operador Ejemplo Descripción && $a && $b $a y $b son ambos true. and $a and $b || $a || $b $a o $b son true. or $a or $b $a es false, niega el valor lógico ! ! $a de la variable. Xor $a xor $b $a es true o $b es true, pero no lo son los dos a la vez. 2 Estructuras de control Las estructuras de control o sentencias de control nos permiten modificar el flujo de ejecución básico del programa, es decir, gracias a ellas la ejecución no tiene por qué ser totalmente secuencial, vamos a poder controlar el flujo lógico de cualquier programa. Estas estructuras nos permiten bifurcar el flujo del programa y así ejecutar unas partes u otras del código según se cumplan una serie de condiciones, hacer que un determinado código no llegue a ejecutarse nunca o que lo haga tantas veces como queramos. 2.1 Sentencias condicionales Son las estructuras de control más sencillas, se basan en el uso de la sentencia if…else y en las diferentes formas que ésta puede presentar. Utilizando estas sentencias, somos capaces de hacer que el programa elija entre dos caminos de ejecución diferentes en función de la evaluación de una expresión lógica. www.zanphp.com                                                                                                                                                                                                                                  11  |  P á g i n a    
  • 12.     2.1.1 If Es una de las más utilizadas e importantes en la mayoría de los lenguajes de programación. Su sintaxis es la siguiente: If (condición) { [sentencias] } El intérprete de PHP lo que hace es evaluar la condición, que debe ser una expresión lógica y, si resulta verdadera, se ejecutarán las sentencias comprendidas entre las llaves “{” y “}” y, si es falsa, PHP ignorará las sentencias y seguirá con la ejecución normal del programa, es decir, nos permite tomar decisiones en torno a una condición. Las sentencias if se pueden anidar, es decir, podemos poner dentro de un bloque if otras sentencias if, lo cual proporciona una flexibilidad completa para ejecuciones condicionales. <?php $a = 3; $b = 7; $c = 9; echo “El número mayor es:”; if($a > $b) { if($a > $c) { echo $a; } } if($b > $a) { if($b > $c) { echo $b; } If ($c > $b) { echo $c; } } ?> 2.1.2 If… else La sentencia if…else consta de un bloque if que se ejecuta cuando la expresión se evalúa a true y de un bloque else cuyas instrucciones se ejecutarán cuando se evalúa a false. La sintaxis de la instrucción if…else es la siguiente: If (expresión) { [sentencias] } else { [sentencias] } www.zanphp.com                                                                                                                                                                                                                                  12  |  P á g i n a    
  • 13.     2.1.3 If…elseif Hay muchas ocasiones en que se quiere evaluar una nueva comprobación utilizando una sentencia if dentro del cuerpo de una sentencia else; para estos casos se puede utilizar la sentencia elseif que nos permite combinar ambas sentencias en una sola. La sintaxis de la sentencia if…elseif es la siguiente: If(expresión) { [sentencias] } elseif(expresión) { [sentencias] } elseif(expresión) { [sentencias] } else { [sentencias] } Ejemplo: <? echo “Hoy es: ”; $dia = date(“D”); if($dia == “Mon”) echo “Lunes”; elseif($dia == “Tue”) echo “Martes”; elseif($dia == “Wed”) echo “Miércoles”; elseif($dia == “Thu”) echo “Jueves”; elseif($dia == “Fri”) echo “Viernes”; elseif($dia == “Sat”) echo “Sábado”; else echo “Domingo”; ?> 2.1.4 If compacto PHP utiliza dos operadores (“?” y “:”) para formar expresiones condicionales que devolverán uno de dos posibles valores basándose en el valor lógico obtenido al evaluar una expresión. La sintaxis de estos operadores es: <expresion1> ? <expresion2> : <expresion3>; De este modo considerando expresión1, si ésta se evalúa a true, entonces de devolvería la evaluación de expresión2; en caso contrario, el valor devuelto sería el resultado de evaluar la expresión3. www.zanphp.com                                                                                                                                                                                                                                  13  |  P á g i n a    
  • 14.     <?php $a = 3; $b = 7; $c = 9; $mayor = ($a > $b) ? $a : $b; echo “El mayor es”; echo ($mayor < $c) ? $c : $mayor; ?> 2.1.5 Switch La sentencia switch se utiliza para compara un dato con un conjunto de posibles valores. Esta tarea se puede realizar utilizando múltiples sentencias if o con una sentencia if…elseif múltiple, pero la sentencia switch es mucho más legible y nos permite especificar un conjunto de sentencias por defecto, en el caso de que el dato no tenga un valor con que compararlo. Switch($variable) { case valor N: [sentencias] [break;] [default: sentencias; ] } Ejemplo: <?php echo “Hoy es: ”; $dia = date(“D”); switch($dia) { case “Mon”: echo “Lunes”; break; case “Tue”: echo “Martes”; break; case “Wed”: echo “Miércoles”; break; case “Thu”: echo “Jueves”; break; case “Fri”: echo “Viernes”; break; case “Sat”: echo “Sábado”; break; default: echo “Domingo”; } ?> 2.1.6 For Esta instrucción nos permite realizar un conjunto de instrucciones un determinado número de veces. Es una de las estructuras de control sintácticamente más compleja de PHP. www.zanphp.com                                                                                                                                                                                                                                  14  |  P á g i n a    
  • 15.     For ([inicialización]; [condición]; [bucles]) { [sentencias] } Las tres expresiones cerradas entre paréntesis son opcionales, pero es necesario escribir los caracteres punto y coma (“;”) que las separan aunque las expresiones se omitan, para que cada expresión permanezca en el lugar apropiado. <? echo “La suma de los 10 primeros números enteros es: ”; $suma = 0; for($i = 1; $i <= 10; $i++) { $suma += $i; echo $i; if($i == 10) echo “=”; else echo “+”; } echo “<strong>$suma</strong>”; ?> 2.1.7 Foreach Esta sentencia nos permite recorrer las estructuras de tipo array de una forma sencilla, obteniendo en cada paso de la iteración uno de sus elementos componentes. También se suele utilizar para traducir tablas de tipo hash. Foreach($array as $variable) { [sentencias] } Lo que hace el bucle es recorrer cada uno de los elementos del array que tiene por nombre $array, asignado en cada paso el valor del elemento actual del array al contenido de la variable $variable. El bucle hace uso de un puntero interno que apunta a la posición actual del array (comenzando por la primera y siguiendo en orden ascendente) y que va actualizando de forma automática en cada una de las iteraciones. <?php $array=array("Manzana","Pera","Platano"); reset($array); foreach ($array as $fruta){ echo "Fruta:$fruta<br>n"; } ?> También está función se puede aplicar a un array de tipo asociativo, en el que el índice en cada elemento no es de tipo numérico. www.zanphp.com                                                                                                                                                                                                                                  15  |  P á g i n a    
  • 16.     $a=array( "uno"=>1, "dos"=>2, "tres"=>3, "diecisiete"=>17 ); foreach($a as $k=>$v){ echo “$a[$k]=>$v”; } 2.1.8 While La sentencia while actúa de forma muy parecida a la sentencia for, pero se diferencia de ésta en que no incluye en su declaración la inicialización de la variable de control del bucle ni su incremento o decremento. Por tanto dicha variable se deberá declarar antes del bucle while y su incremento y decremento se deberá realizar dentro del cuerpo de dicho bucle. While (condición) { [sentencias] } Con esta instrucción se va a poder ejecutar un conjunto de instrucciones un indeterminado número de veces, siempre y cuando el resultado de comprobar la condición sea verdadera (debe ser una expresión que se evalúe a un valor lógico). Si la condición se evalúa a true, se ejecutan las sentencias del cuerpo del bucle; después de ejecutarlas, se volverá a evaluar la condición, de forma que, si ésta sigue cumpliéndose, se volverán a ejecutar las sentencias. Esto se repite hasta que la condición se evalúa a false, en cuyo caso no se ejecutarán las sentencias del cuerpo del bucle y continuará la ejecución del script por la instrucción siguiente a la sentencia while. <?php /* ejemplo 1 */ $i = 1; while ($i <= 10) { print $i++; /* el valor impreso sería $i antes del incremento (post-incremento) */ } /* ejemplo 2 */ $i = 1; while ($i <= 10): print $i; $i++; endwhile; ?> Los bucles do...while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteración en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecución de la primera iteración de un bucle www.zanphp.com                                                                                                                                                                                                                                  16  |  P á g i n a    
  • 17.     do...while (la condición se comprueba sólo al final de la iteración), mientras que puede no ser necesariamente ejecutada con un bucle while regular (la condición se comprueba al principio de cada iteración, si esta se evalúa como FALSE desde el principio la ejecución del bucle finalizará inmediatamente). <?php $i=0; do{ print $i; } while($i>0); ?> 2.1.9 Include Esta función incluye y evalúa un fichero externo cada vez que es interpretada. Ambos pasos, la inclusión del fichero externo y su posterior evaluación, se realizan cada vez que el flujo del programa llega a una línea que contenga la llamada a esta función. En caso de que el fichero a incluir no exista o su referencia sea errónea, la función genera un aviso o warning, continuando con la ejecución por la siguiente instrucción. Cuando un archivo se incluye con include(), el intérprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al acabar de leer dicho archivo. Por esta razón, cualquier código dentro del archivo referenciado que debiera ser ejecutado como código PHP debe ser encerrado dentro de etiquetas válidas de comienzo y fin de PHP. variables.php <?php $color='verde'; $fruta='manzana'; ?> prueba.php echo "Una $fruta $color";//Una include 'variables.php'; echo "Una $fruta $color"; //Una Manzana Verde 2.1.10 Require La sentencia require() incluye y evalúa el archivo especificado. Require() e include() son idénticas en todos los aspectos excepto en el modo de actuar ante un error. include() produce un Warning mientras que require() produce un Error Fatal. En otras palabras, no dude en utilizar require() si quiere que un fichero no encontrado cuelgue el procesamiento de la página. include() no se comporta de esta manera, el script seguirá funcionando de todas maneras. Asegurarse que include_path este configurado bien. 3 Cadenas Echo (cadena), print (cadena): No son funciones propiamente dichas, sino construcciones del lenguaje. Ambas muestran información por la salida estándar; no soportan ningún atributo de formato de salida y sólo admiten una única cadena como argumento en su llamada (cuando necesitamos pasar más de un argumento a cualquiera de estas funciones, deberemos utilizar las comillas). www.zanphp.com                                                                                                                                                                                                                                  17  |  P á g i n a    
  • 18.     Printf (formato [, argumentos]): Imprime información por la salida estándar soportando diferentes formatos de salida. Admite múltiples tipos de argumentos a visualizar. Imprime una cadena cuyo estructura depende del formato descrito en el argumento formato. Esta cadena está formada por una ristra de caracteres, algunos de los cuales se mostrarán directamente, mientras que otros, los que van precedidos por el carácter “%”, conocidos como especificaciones de conversión, son utilizados para formatear la información. Strlen(cadena): Devuelve la longitud de la cadena pasada como argumento. Strstr(cadena, cadBusq), strchr(cadena, cadBusq): Busca la aparición de una cadena dentro de otra y devuelve la subcadena comprendida entre la primera aparición de la cadena buscada (incluyéndola) hasta el final de la cadena en la que se realiza la búsqueda. La búsqueda diferencia entre mayúsculas y minúsculas. Strrchr(cadena, cadBusq): Busca la aparición de un carácter en una cadena y devuelve la subcadena. Si el elemento a buscar no es una cadena, se convierte a entero y se aplica como el valor ordinal de un carácter. Stristr(cadena, cadBusq): Es igual a strstr(), salvo que no diferencia entre mayúsculas y minúsculas. Strpos(cad1, cad2 [, desplz]): Encuentra la primera posición de aparición de una cadena a partir de una cierta posición (si no se indica, el valor por defecto para el desplazamiento es 0). Strspn(cadena, máscara): Obtenemos la longitud de la subcadena más larga que está formada sólo por caracteres contenidos en una máscara. Una vez encontrado un carácter que no está en la máscara se abandona la búsqueda. Strcmp(cad1, cad2): Compara dos cadenas y devuelve un valor menor que 0, si la segunda cadena es mayor que la primera, si la segunda es mayor a la primera; mayor que 0, en caso contrario, y 0, si ambas son iguales. Substr(cadena, inicio [, tamaño]): Devuelve la subcadena que se encuentra a partir de una posición dada y llega hasta el final de la cadena original, pudiendo de forma opcional decidir el tamaño de la subcadena a recuperar. Substr_replace(cad1, cad2, inicio [, tamaño]): Devuelve una cadena que es resultado de la sustitución de parte del contenido de una cadena original (indicado por una posición de inicio y opcionalmente por un tamaño) por el contenido de otra cadena. La cadena original no sufre ninguna modificación. Str_replace(cadBus, CadRee, Cadena): Devuelve una cadena, que es resultado de la sustitución de todas las apariciones de una subcadena, por otro contenido en la cadena original. Substr_count(cadena, patrón): Devuelve el número de apariciones de una subcadena dentro de una cadena. Chop(Cadena): Devuelve la cadena argumento sin los espacios en blanco y caracteres de fin de línea que se encuentran al final de la cadena. Ltrim(cadena): Elimina espacios en blanco que se encuentran al principio de una cadena de texto. Trim(cadena): Elimina los espacios en blanco que se encuentran al principio y al final de una cadena de texto. www.zanphp.com                                                                                                                                                                                                                                  18  |  P á g i n a    
  • 19.     Str_pad(cadena, long): Rellena una cadena con un carácter de relleno (por defecto, es el espacio en blanco) hasta que la cadena resultante tenga la longitud deseada. Strtolower(cadena): Convierte una cadena de caracteres a minúsculas. Strtoupper(cadena): Convierte una cadena de caracteres a mayúsculas. Ucfirst(cadena): Se encarga de convertir a mayúscula el primer carácter de una cadena de caracteres, siempre que éste sea alfabético. Ucwords(cadena): Se comporta igual que la función anterior, salvo que ésta convierte a mayúsculas el primer carácter de cada palabra que compone la cadena, siempre y cuando sean caracteres alfanuméricos. Addslashes(cadena): Devuelve una cadena de caracteres igual que la original en la que se han escapado los caracteres especiales comillas dobles (“”), comillas simples (‘’) y barra invertida (). Split(patrón, cadena): Devuelve un array resultado de dividir una cadena en diferentes subcadenas. El número total de elementos del array puede ser elegido a través de un parámetro opcional.} Explode(patrón, cadena): Devuelve un array resultado de dividir una cadena en diferentes cadenas. Implode(nexo, cadena): Devuelve una cadena resultado de unir todos los elementos de un array en el mismo orden en el que aparecen, pero con una cadena en medio de ellos. Htmlspecialchars(cadena): Se encarga de convertir los caracteres con un significado especial en HTML. Htmlentities(cadena): Es similar a la función htmlspecialchars(), salvo que esta función traduce todos los caracteres a su correspondiente entidad en HTML. 4 Arrays Constructor Otra forma de definir arrays es utilizar el constructor array() proporcionado por el lenguaje. Este constructor no es una función regular; tiene la siguiente definición: Array array (mixed valores, …) Ejemplo: $vector = array(“Carro”, “Moto”, “Bicicleta”); echo $vector[0]; //Carro; echo $vector[1]; //Moto; echo $vector[2]; //Bicicleta; El constructor array() también nos permite asignar los elementos del array en el orden en que queramos. Para ello, indicamos el índice, seguido del símbolo “=>” y el valor del elemento. Ejemplo: $vector = array(2 => “Manzana”, 0 => “Platano”, “Pera”); Los elementos a los que no se les asigna explícitamente un índice toman la posición secuencial relativa a la última asignación de posición dentro del array. www.zanphp.com                                                                                                                                                                                                                                  19  |  P á g i n a    
  • 20.     Arrays Asociativos A diferencia de los arrays simples, los arrays asociativos (también conocidos como tablas hash o arrays indexados por cadena) están formados por un conjunto de valores que están ordenados respecto a un índice de tipo string, es decir, una cadena de caracteres. De igual manera que ocurre con los arrays simples, podemos utilizar el constructor del lenguaje array() para definirlos, o bien, hacerlo especificando de forma explícita cada uno de sus componentes. Ejemplo: $vector = array(“animal” => “Perro”, “nombre” => “Valiente”, “raza” => “Labrador”, “sexo” => “Masculino”); Arrays Multidimensionales PHP nos permite definir arrays multidimensionales mediante la combinación de arrays unidimensionales (que pueden ser tanto de tipo escalar, como asociativos). Ejemplo: $matriz[0][0] = “Salud”; $matriz[0][1] = “Dinero”; $matriz[1][0] = “Amor”; $matriz[1][1] = “Sexo”; $matriz[“peso”][“moneda”] = “Pesos”; $matriz[“peso”][“cambio”] = 10; $matriz[“dolar”][“moneda”] = “Dólar”; $matriz[“dolar”][“cambio”] = “0.1”; Funciones para arrays Current(array): Devuelve el valor de la posición actual del puntero dentro del array: todos los arrays tienen un puntero interno que apunta a la posición del elemento actual con el que se está trabajando en un momento dado. Key(array): Devuelve el índice de la posición actual del array pasado como argumento. Next(array): Devuelve el valor del elemento siguiente al actual (si existe) y avanza el puntero interno una posición. Prev(array): Devuelve el valor del elemento anterior al actual (si existe) y retrocede el puntero interno una posición. End(array): Coloca el puntero interno en el último elemento de un array escalar. Reset(array): Devuelve el valor del primer elemento del array y sitúa el puntero interno en su primera posición. Each(array): Se usa para recorrer arrays (sobre todo los asociativos), pues devuelve un par de valores correspondientes a la clave y al valor asociado a esa clave. List(array): Asigna una lista de variables en una sola operación. Suele utilizarse en combinación con la función each(). www.zanphp.com                                                                                                                                                                                                                                  20  |  P á g i n a    
  • 21.     Array_keys(array): Devuelve las claves que forman el array matriz. Admite un parámetro opcional que nos permite seleccionar sólo las claves cuyo valor coincida con un patrón dado. Array_values(array): Devuelve los valores que forman parte del array pasado como parámetro. Sort(array): Ordena alfanuméricamente los valores de los elementos de un array de menor a mayor. Para ordenar de manera inversa, disponemos de la función rsort(array). Asort(array): Ordena alfanuméricamente los valores de los elementos de un array de mayor a menor, pero manteniendo la relación existente entre los índices y sus valores asociados. Arsort(array) realiza la ordenación inversa. Ksort(array): Ordena alfanuméricamente las claves de un array de menor a mayor manteniendo las correlaciones entre clave y valor asociado. Krsort(array) realiza la ordenación inversa. Array_merge(array1, array2): Combina en un solo array los valores de los arrays que recibe como argumentos. Array_pad(array, tamaño, relleno): Devuelve un array igual a matriz, pero modificando su número de elementos hasta alcanzar la longitud deseada (tamaño) añadiendo nuevos elementos por la derecha (tamaño es positivo) o por la izquierda (tamaño es negativo). Array_slice(array, desplazamiento [, int tamaño]): Devuelve los elementos del array que están situados a partir de una posición determinada por desplazamiento. Opcionalmente, podemos indicar el total de elementos que queremos. Array_splice(array, desplz [,tam [array substituto]]): Elimina elementos de un array, sustituyéndolos opcionalmente por los elementos de otro array (substituto). Array_push(array, valor1 [, valor2, …]): Inserta uno o más elementos al final del array (pila). Array_pop(array): Devuelve y elimina el último elemento del array (el que corresponde con la cima de la pila). Array_shift(array): Devuelve y elimina el primer elemento del array (el que corresponde con la base de la pila). Array_unshift(array, valor1 [, valor2, …]): Inserta uno o más elementos al principio del array. Array_reserve(array): Devuelve el array pasado como parámetro, pero con sus componentes en orden inverso. Range(limite_inf, limite_sup): Devuelve un array con los valores enteros comprendidos entre el primer argumento y el segundo que recibe la función, ambos inclusive. Array_count_values(array): Recibe como argumento un array y devuelve otro cuyos índices son los mismos que los del array original y sus valores asociados son la frecuencia con la que se repiten dichos valores en el array original. In_array(elemento_busqueda, array): Con esta función podremos saber si un elemento está contenido dentro de un array. Compact(): Esta función recibe como argumento una lista de variables que han sido previamente definidas, que pueden aparecer como cadenas de caracteres o como arrays y devuelve un nuevo array en el que los índices son los nombres de las variables y el contenido de los elementos del array son sus correspondientes valores. www.zanphp.com                                                                                                                                                                                                                                  21  |  P á g i n a    
  • 22.     5 Funciones La sintaxis de la declaración de una función es la siguiente: Function nombreFunción([parametro1 [,…]]) { [sentencias] } Una vez declarada una función, ésta no se ejecuta hasta que se le llama desde cualquier parte del script. Para llamar a una función, sólo hay que escribir una sentencia que contenga el nombre de la función y, entre paréntesis, los valores de los argumentos de llamada de ella. <?php Function cuentaAtras() { For($i = 10; $i > 0; $i--) { echo $i.”…<br />“; } Echo “!Boom!”; } ?> <?php cuentaAtras(); ?> En ocasiones, necesitaremos definir funciones que aceptan parámetros o argumentos. De esta forma conseguimos que la función sea más utilizable dentro del propósito general para el que está definida. <?php Function cuentaAtras($inicio) { For($i = $inicio; $i>0; $i--) echo $i.”…<br />”; echo “!Boom!”; } cuentaAtras(5); ?> Variables globales son todas aquéllas que se definen fuera del cuerpo de una función y son accesibles, en general, desde cualquier punto del código. En PHP, las variables globales deben ser declaradas globales dentro de la función si van a ser utilizados dentro de dicha función, anteponiendo a su definición la palabra reservada global. Un segundo método para acceder a las variables globales desde un ámbito local es usando el array $GLOBALS (es un array asociativo con el nombre de la variable global como clave y los contenidos de dicha variable como el valor del elemento del array). Variables locales aparecen definidas dentro del cuerpo de una función y sólo pueden ser accedidas desde dentro de esta función. Cualquier variable que se use dentro de una función está, por defecto, limitada al ámbito local de la función. Esto quiere decir que, si declaramos una variable local con el mismo nombre que una variable global, dentro de la función trabajaremos con la versión local de la variable. <?php $inicio = 0; www.zanphp.com                                                                                                                                                                                                                                  22  |  P á g i n a    
  • 23.     $final = 9; Function cuentaAtras() { Global $final; #Variable global. $inicio = 7; #Variable local. Static $num = 0; #Variable estática For(;$inicio>$final;$inicio--) Echo $inicio.”…<br>”; $num++; Echo “!Boom -$num-“; } cuentaAtras(); //$num vale 1. cuentaAtras(); //$num vale 2. ?> Del mismo modo que las funciones pueden recibir valores, también pueden devolverlos. La devolución de un valor desde una función trabaja de igual forma que la devolución de un valor en una expresión, de manera que el valor devuelto desde una función puede ser asignado a una variable o utilizado dentro de una expresión. Se puede devolver cualquier tipo de valores incluyendo listas y objetos, pero sólo un único valor; para devolver múltiples valores, deberemos utilizar un array. <?php Function ElMayor($dato1, $dato2, $dato3) { $elmayor = ($dato1 > $dato2) ? $dato1 : $dato2; $elmayor = ($elmayor > $dato3) ? $elmayor : $dato3; Return $elmayor; } Echo “El Mayor de 17, 5 y 9 es “.ElMayor(17,5,9).””; ?> Se dice que una función es recursiva cuando en algún punto de su cuerpo se llama a sí misma. Hay que tener cuidado al escribir una función recursiva, ya que puede ocurrir que se llame a sí misma indefinidamente. Por tanto, es esencial asegurarse de implementar una forma adecuada de terminar la recursión: es lo que se denomina como condición de parada. La recursión nos sirve para solucionar algunos problemas complejos; un ejemplo típico de recursión es hallar el factorial de un número. <?php Function Factorial($numero) { If($numero == 0) return 1; Return $numero * Factorial($numero – 1); } Function Factor_Iterativo($numero) { Echo “$numero! = ”; For($factorial = 1; $numero > 1; $numero--) { $factorial *= $numero; Echo “$numero x ”; } Echo “1 = $factorial”; return $factorial; } www.zanphp.com                                                                                                                                                                                                                                  23  |  P á g i n a    
  • 24.     Echo Factorial(5); Echo Factor_Iterativo(5); ?> 6 Funciones de fecha y hora Es muy importante en muchos problemas y aplicaciones llevar un control con la fecha y la hora en un determinado momento, o bien, conocer la fecha para saber si tenemos que ejecutar un programa u otro…; existen muchas circunstancias donde es necesario conocer estos datos. PHP nos ofrece una gran variedad de funciones para abordar con mayor rapidez y de una forma más sencilla los distintos problemas relacionados con el manejo de fechas y tiempos que nos puedan ir saliendo a la hora de realizar nuestros programas. En casi todos los sistemas informáticos hay una fecha de inicio común, a partir de la cual se empieza a contar el tiempo. En el caso de los sistemas UNIX la fecha elegida como comienzo es el día 1 de enero de 1970 a las 00:00:00 GMT, fecha que se conoce como el principio de la era UNIX. El contador de tiempo se conoce como marca de tiempo (timestamp) y representa el número de segundos transcurridos desde una fecha dada. En PHP todas las funciones de fecha/hora que trabajan con marcas de tiempo hacen referencia a esta fecha. Time(): Obtiene la marca de tiempo UNIX actual. Checkdate(): Valida una fecha en formato gragoriano. Date(): Da formato a la hora y la fecha locales. Getdate(): Obtiene información sobre la fecha y hora locales. Gettimeofday(): Obtiene la hora actual. Gmdate(): Formatea la fecha y la hora a formato GMT. Gmmktime(): Obtiene la marca de tiempo UNIX de una fecha con formato GMT. Gmstrftime(): Formatea la fecha y hora con formato GMT a las características locales. Microtime(): Obtiene la marca de tiempo UNIX actual en microsegundos. Mktime(): Obtiene la marca de tiempo UNIX para una fecha dada. Strftime(): Formatea la hora actual de acuerdo con las características locales. Strtotime(): Traduce una fecha u hora descrita en inglés a su correspondiente marca de tiempo UNIX. Hay una serie de parámetros que tienen un significado propio y son reconocidos dentro de la cadena de formato. Valores Descripción a “a.m.” o “p.m.” A “A.M.” o “P.M.” d Día del mes con dos dígitos (de 01 a 31) D Día de la semana con tres caracteres. F Nombre del mes h Hora en formato 01 a 12 H Hora en formato 00 a 23 g Hora en formato 1 a 12 (sin cero) G Hora en formato 0 a 23 (sin cero) www.zanphp.com                                                                                                                                                                                                                                  24  |  P á g i n a    
  • 25.     i Minutos de 00 a 59 j Día del mes en formato 1 a 31 (sin cero) l Día de la semana, en texto completo L 1: si es año bisiesto, 0: si no es un año bisiesto. m Mes de 01 a 12 M Mes con tres caracteres n Mes de 1 a 12 s Segundos de 00 a 59 S Sufijo ordinal en inglés (“th”, “nd”) t Número de días del mes dado, de 28 a 31 U Segundos transcurridos desde el valor de inicio (01-01-1970) w Día de la semana de 0 (domingo) a 6 (sábado) y Año con cuatro dígitos Y Año con dos dígitos z Día del año de 0 a 365 Z Diferencia horaria en segundos de 43200 a 43200 7 Cookies y sesiones Los usuarios normalmente completan un formulario modificando sus controles (introduciendo texto, seleccionando objetos de un menú, etc.), antes de enviar el formulario a un agente para que lo procese (por ejemplo, a un servidor Web, a un servidor de correo, etc.). Todos los controles presentes en un formulario, para que sean efectivos, deben aparecer incluidos dentro de un elemento form de HTML. La etiqueta FORM actúa, por tanto, como contenedor de controles. Pero, además, especifica entre otros: -El programa que manejará los datos del formulario una vez haya sido completado y enviado (atributo action). El programa receptor debe ser capaz de interpretar las parejas nombre/valor para poder hacer uso de ellas. -La forma en la que se enviarán los datos del usuario al servidor (atributo method). -El tipo MIME usado para enviar los datos del formulario (atributo enctype). El valor por defecto de este atributo es application/x-www-form-urlencode. El atributo method del elemento form especifica el método HTTP usado para enviar los datos del formulario al agente procesador. Este atributo puede tener dos valores: Get: El conjunto de datos del formulario se agrega (con el carácter “?” como separador) al URI especificado en el atributo action (el programa que tratará los datos) y este nuevo URI se envía al agente procesador. www.zanphp.com                                                                                                                                                                                                                                  25  |  P á g i n a    
  • 26.     Post: Los datos del formulario se incluyen en el cuerpo del mensaje que se envía al agente procesador. El conjunto de datos del formulario que se envía al agente servidor es una secuencia de parejas nombre_de_control/valor construida a partir de los elementos del formulario. Cada uno de los controles tiene asociado un nombre que viene dado por su atributo name. De igual forma, cada control tiene tanto un valor inicial, como un valor actual, que son ambos cadenas de caracteres. En general (excepto en el caso del elemento textarea), el valor inicial de un control puede especificarse con el atributo value del elemento de control. El valor actual del control se iguala en un primer momento al valor inicial y, a partir de ese momento, el valor actual del control puede ser modificado a través de la interacción con el usuario y/o mediante scripts que se ejecuten en el cliente. El valor inicial de un control no cambia. Así, cuando se reinicializa el formulario, el valor actual de cada control se iguala a su valor inicial. Si el elemento de control no tiene un valor inicial, se le asigna el valor nulo. Variable Contenido _POST Array que contienen las variables pasadas a través del método POST. Su uso es análogo al array HTTP_POST_VARS de versiones anteriores a la 4.2.0 de PHP (obsoleto). _GET Array que contiene las variables pasadas a través del método GET. Su uso es análogo al array HTTP_GET_VARS de versiones anteriores a la 4.2.0 de PHP (obsoleto). _REQUEST Array que contiene las variables pasadas a través de cualquier mecanismo de entrada. 7.1 Cookies Básicamente, las cookies son ficheros de texto ASCII que almacenan información siguiendo una estructura básica de pares identificador = valor. Su tamaño es relativamente pequeño, no superando en ningún caso los 4 Kb. El modo en que se almacenan, los directorios en que se almacenan y el resto de características propias de una operación de lectura/escritura sobre disco dependen de gran manera del sistema operativo y del navegador que tenga instalado el equipo cliente. De igual forma, la posibilidad de hacer uso de cookies depende que el software utilizado para acceder a la aplicación Web (normalmente un navegador) cuente con esta característica y que, además, esté habilitada. PHP propone una sola función para el manejo básico de cookies (creación y borrado) cuya sintaxis es la siguiente: Setcookie(Nombre_Cookie, valor, tiempo_de_vida); #Crea. Setcookie(Nombre_Cookie); #Elimina la cookie. Para poder acceder a los contenidos de las cookies, PHP proporciona una variable global consistente en un array asociativo formado por todas las variables pasadas a través de las cookies. Es la variable $_COOKIE: $_COOKIE[“nombre_de_la_cookie”]; 7.2 Sesiones El modo principal de activar el uso de sesiones cuando lo deseemos es hacer uso de la función session_start(). www.zanphp.com                                                                                                                                                                                                                                  26  |  P á g i n a    
  • 27.     Esta función crea una nueva sesión y genera el nuevo identificador, o retoma la sesión en caso de que existiera, utilizando el identificador de sesión que se había propagado haciendo uso de la URL o de cookies. Session_register(nombre [, nombre]): Registra una nueva variable global para la sesión actual. En caso que no exista la sesión, la crea realizando una llamada implícita a la función session_start(). Session_is_registered(nombre): Devuelve true cuando la variable cuyo nombre se ha pasado como argument a la llamada está registrada dentro de la sesión actual. Session_unregister(nombre): Evita que la variable que se ha pasado como argumento a la llamada sea salvada como parte de la sesión actual, es decir, la elimina de la sesión, pero sigue siendo una variable del script donde se ejecuta (para esto tendríamos que llamar a la función unset()). www.zanphp.com                                                                                                                                                                                                                                  27  |  P á g i n a