Está en la página 1de 106

Programando en PHP

PHP – Objetivo del curso

Nuestro objetivo con este curso de PHP es dar los


lineamientos generales sobre la sintaxis y utilización
de este poderoso lenguaje de scripting en sus futuros
desarrollos web .

Usted al finalizar el curso podrá optar por rendir un


examen final (no obligatorio) o diseñar un proyecto
integrador propuesto por el instructor.
Sobre el instructor
Mi nombre es Jonatan Lucio Casagrande y voy a ser su
instructor a lo largo de este curso denominado
“Introducción a PHP”.

Usted me podrá contactar vía msn a la siguiente


dirección jonatan.lc@live.com.ar para consultas
sobre el curso a toda hora y no importa que sea fin de
semana.

Mi sitio personal es: www.jonatancasagrande.com.ar


¿Que es PHP?
PHP es un lenguaje de Scripting de lado servidor que permite
agregar dotar de dinamismo a nuestros sitios web.

PHP proviene de Pre Procesador de Hipertexto .

Hipertexto es un documento que reúne imágenes ,


textos,sonidos o videos relacionados entre si mediante enlaces
, con lo cual al pinchar sobre uno nos llevara a otro , entonces
podremos decir que la WWW es una forma de usar la Internet
mediante Hipertextos enlazados entre si.
¿Que es un sitio web estático?
Un sitio web estático es un documento web al cual
nosotros cada vez que accedamos veremos siempre el
mismo contenido.

Un ejemplo de estático seria una foto colocada en un


servidor web , siempre que accedemos a visualizarla ,
estaremos viendo el mismo contenido.

La WWW nació siendo estática.


¿Que es un sitio web dinámico?

Un sitio web dinámico es un documento web al


cual en cada acceso nuestro veremos información
diferente , es decir tiene dinamismo , un claro
ejemplo , un diario on-line.

La WWW actual es una mezcla entre contenido


dinámico y estático.
Empezando con PHP - Sintaxis
Creando un archivo .PHP
Para que nuestro servidor web pueda interpretar
que el fichero al cual estamos accediendo tiene
que ser procesado por PHP , dicho fichero debe
poseer extensión .php.

Ejemplo:

miarchivo.PHP
PHP – Sintaxis Básica

Todo bloque de código PHP debe comenzar con el


tag de apertura <?php y luego de la ultima
instrucción debemos finalizar el bloque PHP con
el tag de cierre ?> .

Los tags nos sirven para indicar al interprete de


PHP que código debe analizar como PHP y cual
no debe procesar/analizar como tal.
PHP – Estructura básica de un fichero .php

Un fichero .php posee generalmente una mezcla


entre HTML (Estático) y PHP (Dinámico).

HTML permite visualizar la salida de las funciones


PHP y PHP se encarga de la capa lógica de
aplicación de nuestro sistema.
PHP – Estructura básica de un fichero .php

Como podremos observar en el código disponemos


de una mezcla entre código HTML (Estático) y
código PHP (Dinámico)
PHP – Comentarios embebidos
Los comentarios embebidos permiten enriquecer y aumentar la
calidad de nuestros desarrollos.

Las formas existentes en PHP para insertar comentarios dentro


de un bloque php son dos , comentario de simple linea y de
bloque de comentario.

Comentario Simple Linea – Bloque de comentarios


PHP – Fin de instrucción
Como podrán recordar aquellos programadores de la vieja escuela , en
Pascal para indicar que una instrucción finalizaba era necesario colocar
un semicolon (punto y coma) al final de la instrucción.

En PHP para indicar el fin de una instrucción es necesario también colocar


un Semicolon al final de la instrucción , de este modo el interprete puede
reconocer que en ese punto es el fin de la instrucción.

Ejemplo:

<?php echo “Juan”; ?>

Como podremos observar resaltado en amarillo , disponemos del


semicolon para indicar el fin de la instrucción.
PHP – Funciones de salida a navegador
En PHP disponemos de dos funciones que permiten salida a navegador , ellas son echo y
print .

Echo permite imprimir múltiples valores o variables en forma simultanea a pantalla , pero
no permite que la instrucción forme parte de una expresión compleja ya que generaría un
error.

Implementación de echo:

Con print realizamos básicamente lo mismo que con la función echo con la diferencia que
con print podremos utilizarla dentro de una expresión compleja , veamos un ejemplo.
PHP - Funciones de salida a navegador
En PHP también disponemos de 2 funciones que vamos a utilizar mucho en la
etapa de debug de nuestros códigos , ellas son var_dump y print_r.

La función print_r permite imprimir en pantalla todos los elementos de una


variable del tipo arreglo.

Implementación Vista

La función var_dump imprime una cadena que nos indica el tipo de dato que
contiene la variable y el valor contenido en ella.

Implementación Vista
PHP – Aspectos generales sobre variables
En PHP las variables no necesitan que le declaremos el tipo de dato al que
pertenecen ya que PHP es un lenguaje de tipado dinámico (self typed).

Los identificadores de las variables deben comenzar con guion bajo o una
letra.

El identificador de una variable solo puede contener en su nombre


caracteres alfanuméricos y guiones bajos.

El identificador de una variable si posee más de una palabra no puede


dividirse con espacios en blanco para ello reemplace mediante guion
bajo.

Las variables en PHP permite almacenar recursos , cadenas , enteros ,


estados y matrices.
PHP – Declarando una variable
En PHP no es necesario declarar una variable antes utilizarla.

La forma estándar de declarar una variable es la siguiente.

Como podremos observar una declaración estándar esta compuesta por $ (toda
variable debe comenzar con $ ) , un identificador (nombre) de la variable , el
operador de asignación (=) y el valor a asignar.

Recuerde que tanto en Pascal como en PHP , la asignación es de derecha a


izquierda.

PHP asignara en modo automático el tipo de dato correspondiente para la variable


de acuerdo al contenido que hay en ella , si la variable contiene un numero
decimal asignara el tipo real , si contiene una cadena asignara el tipo string.
PHP – Variables de tipo string
Las variables tipo string (cadena) permiten almacenar un conjunto de caracteres
formando así una cadena.

Las variables tipo cadena permiten operadores relaciones , asignación y


concatenación.

Asignación Concatenación Operadores Relacionales

Nota: El operador de concatenación entre variables del tipo cadena es el punto.


PHP – Acceder a una posición K de una cadena

Desde PHP5 podemos acceder en forma directa a la posición K de una


cadena .

Supongamos que tenemos una cadena de 4 (0 a 3) caracteres “Casa” , y


deseamos acceder al carácter “S” podremos acceder del siguiente modo.

<?php
$cadena='Casa';
echo $cadena{2};
?>

Note que estamos accediendo en forma directa a una posición K como si se


tratara de un arreglo de caracteres y no de una variable string.
PHP – Variables de tipo número
Las variables de tipo número (double,integer) permiten como bien ya lo dice su
nombre almacenar un valor numérico.

Las variables del tipo numérico permiten incremento , decremento , operadores


relaciones , operadores aritméticos y operadores de asignación.

Incremento Decremento Operadores Aritméticos


PHP – Variable tipo arreglo
Un arreglo es una colección de datos indexada.

En PHP existen 3 tipos de arreglos , arreglo numérico , arreglo asociativo y


arreglo multidimensional (matriz).

Por definición todos los componentes de un arreglo deben ser del mismo tipo ,
pero en PHP NO , cada componente del arreglo puede ser de diferente tipo.

Generalmente un arreglo se lo ve como una estructura estática , pero en PHP


es Dinámica , pueden eliminarse elementos de su estructura (eliminando el
espacio utilizado en memoria) y pueden agregarse elementos nuevos a la
estructura.

Una variable arreglo es una variable especial que admite almacenar varios
valores en si misma.
PHP – Variable tipo arreglo
La forma estándar para declarar una variable de tipo arreglo es la siguiente.

Como podremos observar estamos asignando un arreglo vació a la variable


arreglo.

Para adicionar componentes al arreglo tenemos 3 formas , la forma A permite


olvidarnos de manejar los indices del arreglo ya que PHP automáticamente
generara un indice numero incrementable en 1 por cada nuevo componente , la
forma B permite definir nosotros el indice numérico, la forma C permite definir
una cadena como indice que generara una asociación entre clave y valor.
PHP – Variable tipo matriz (array)
La forma de declarar una matriz desde PHP es la siguiente:

Como podremos observar hemos declarado una matriz de nombre pantalla


que posee dos arreglos ,ya que la definición de matriz es un arreglo de
arreglos.

Mediante ese ejemplo estamos simulando una pantalla gráfica con ejes x e
y , en donde el primer indice corresponde a las filas (x) y el segundo
indice pertenece a las columnas (y).

Una matriz puede tener tantos vectores en su composición como el


programador lo requiera.
PHP – Operaciones frecuentes sobre Arreglos
Las operaciones más frecuentes sobre arreglos son ordenarlo por algún
criterio , eliminar un componente de la estructura , contabilizar la
cantidad de elementos almacenados en un momento determinado,recorrer
un arreglo en forma completa o condicional o realizar un merge de
arreglos (mezcla) como así también podremos estar interesados en saber
si una clave o valor existe dentro de un determinado arreglo.

Las operaciones especificas sobre cada elemento individual del arreglo


dependen exclusivamente del tipo de dato que sea dicho componente ,
supongamos como ejemplo que el componente 0 del vector (arreglo)
colector es un dato del tipo numérico , podremos utilizar dicho dato para
realizar comparaciones (relaciones) , operaciones aritméticas,y
operaciones de asignación contra otro dato del mismo tipo pero no
podremos sumar un tipo de dato integer con un tipo de dato boolean.
PHP – Ordenando arreglo mediante Ksort(Clave)

Permite ordenar un vector de n elementos mediante las claves de los elementos


que lo conforman , al terminar la ordenación retorna un vector ordenado de
menor a mayor respetando toda la conformación y datos de la estructura
original.

Implementación Vista sin ordenar Vista Ordenada


PHP – Ordenando arreglo mediante Sort(Valor)

En PHP disponemos de una función llamada Sort que permite


ordenar un arreglo mediante el valor de sus componentes
reinicializando los indices de cada componente a un valor
numérico desde 0 a N-1,en donde N corresponde a la dimensión
lógica del arreglo (cantidad de elementos del arreglo).

Implementación Vista Original

Vista Ordenada
PHP – Fusión de arreglos (Merge)
Como ya sabemos una operación frecuente sobre la estructura de datos del tipo
arreglo es un merge entre dos o más estructuras (fusionar) , la cual fusiona los
datos de una estructura A y una estructura B (del mismo tipo) en una estructura
C del tipo de dato de las estructuras intervinientes.

En PHP disponemos de array_merge($arreglo1,$arreglo2,$arregloN...); que nos


permite fusionar 2 o más estructuras del tipo arreglo en una única estructura.

Implementación Vista
PHP – Recorrido de un arreglo
Como bien ya sabemos un arreglo es una colección indexada de
elementos del mismo o diferente tipo , con lo cual nosotros quizás
deseamos recorrer en forma parcial o total dicha estructura.
PHP – Verificar si un valor existe dentro de un arreglo

En PHP disponemos de la función in_array la cual nos permite


verificar si un valor X se encuentra en un arreglo X , si se
encuentra,la función nos retornara true al punto de invocación
, de lo contrario nos retornara false.

Implementación:
PHP – Verificar si una clave existe dentro de un arreglo

PHP nos permite verificar si una clave existe


dentro un arreglo , para ellos disponemos de la
función array_key_exists que nos devuelve true si
la clave fue localizada dentro de dicha estructura ,
de lo contrario nos devuelve false.

Implementación:
PHP – Eliminar un elemento del arreglo mediante el indice o clave

En PHP podremos eliminar un elemento de un arreglo mediante


la función unset , dicha función permite liberar y destruir
cualquier tipo de variable que le pasemos en sus parametros ,
es bueno mencionar que dicha función admite más de 1
elemento a borrar en forma simultanea.

Implementación:
PHP – Tipo de dato boolean (Lógico)
Una variable del tipo de dato boolean nos permite almacenar un estado
lógico (verdadero o falso).

Las aplicaciones más frecuentes de las variables tipo boolean son en los
cortes de control utilizando como bandera (flag).

Ejemplo de declaración y uso:

Vista:
PHP - Constantes
PHP permite definir constantes dentro de nuestros códigos.

La utilización excesiva de constantes afecta los tiempos de ejecución de


nuestros sistemas.

Una constante debe ser un tipo de dato scalar , es decir no podremos


almacenar un arreglo dentro de una constante.

La forma de declarar una constante e invocarla dentro de un metodo es la


siguiente:
PHP – Heredoc
PHP desde la versión 4.0 dispone de la construcción heredoc o here print que nos
permite imprimir una cantidad grande de texto evitando escapar caracteres en su
interior.

Veamos una implementación típica:

La desventaja de heredoc es que consume bastante memoria y también contribuye


a mezclar de un modo poco entendible código HTML y PHP.

Es mejor cerrar y abrir los tags de PHP cuando debemos colocar código html o
texto muy extenso.
PHP – Estructuras de Control
PHP – Estructura de Control

Una estructura de control permite tomar decisiones


lógicas en base a parámetros y de este modo
alterar el flujo del sistema.
PHP – Estructura IF – ELSE
La estructura if permite evaluar una condición o múltiples
condiciones anidadas y ejecutar un bloque de código u otro de
acuerdo al resultado de dicha evaluación.

Implementación:
PHP – Estructura IF – ELSEIF - ELSE

La estructura if elseif permite controlar 2 o más condiciones


dentro de la misma estructura , nosotros podremos agregar
tantos bloques elseif como necesitemos.

Implementación:
PHP – Estructura IF ELSE
La estructura if else / if elseif else también dispone de una sintaxis más
reducida y alternativa , la cual en ciertas ocasiones facilita la claridad del
codigo.

Implementación:
PHP – Operador Ternario
Con el operador ternario podremos incluir clausulas condiciones simples con una
sintaxis más abreviada , el operador retorna un valor de verdad capturable con
una variable.

El esquema de un operador ternario básico es el siguiente:

(condición_a_evaluar)?(instrucciones si es valida):(instrucciones si no es valida);

Implementación:
PHP – Switch Case
La estructura switch case nos permite evaluar múltiples valores de un modo
simple y legible.

Implementación:
PHP – Estructura While
La estructura while permite ejecutar un bloque de instrucciones mientras la
condición que evaluá el bucle en su definición sea valida.

Los bucles deben tener un fin (momento en que la condición que evaluá el
bucle deja de cumplirse) , sino entramos en un bucle infinito y eso genera
un error (consumo excesivo de recursos).

Implementación:
PHP – Estructura Do While
La única diferencia con while es que la condición es evaluada después de
ejecutar el código , con lo cual el código es ejecutado al menos 1 vez.

Para los que recuerden Pascal , esta estructura (do while) es igual a repeat
until.

Implementación: Vista:
PHP – Estructura FOR
La estructura FOR permite repetir un bloque de
instrucciones desde N a K veces.

Implementación: Vista:
PHP - Modularización
PHP - Modularización
Modularizar significa diseñar funciones o procedimientos
que sean re utilizables y que tengan independencia
funcional.

Modularizar no significa agrupar código bajo una función


o procedimiento.

Modularizar es el arte de descomponer un problema desde


lo general a lo particular (Top Down).
PHP - Modularización

En PHP no disponemos de dos tipos de módulos bien definidos , en


PHP unicamente disponemos de function que podremos adaptarlo
para que funcioné como una función o como un procedimiento.

Los procedimientos modifican variables.

Las funciones devuelven una único dato (puede devolver un arreglo).


PHP – Funciones
El identificador de una función debe comenzar por guion
bajo o una letra y debe estar compuesto por caracteres
alfanuméricos.

El nombre de una función no puede ser igual al nombre de


una función nativa o declarada por el usuario.

Una función siempre debe poseer la instrucción de return


(retorno) , ya que sino es procedimiento.
PHP – Parámetros Formales y Actuales (reales)
Los parámetros formales de una función se encuentran envueltos por paréntesis
en la definición de la misma.

Ejemplo: VerAuto($nombre,$precio);

En cambio los parámetros reales son aquellas variables o constantes que le


pasamos al momento de invocar la función.

Ejemplo:

$nombre=”Honda Civic”;
VerAuto($nombre,'356');

Como podremos observar $nombre es un parámetro real que se relaciona 1 a 1 con


el parámetro formal $nombre y 356 es un valor entero (constante) que se
relaciona con el parámetro formal $precio.
PHP – Definición e invocación
La definición de una función en PHP consta de un identificador y de la
lista de parámetros formales que admitirá (opcional).

Ejemplo:

imprimo_nombre($sunombre);

La invocación de una función se refiere al punto donde la llamamos y le


pasamos los parámetros actuales (si es necesario).

Ejemplo:

imprimo_nombre(“Juan”);
PHP - Función
Las funciones permiten retornar un valor x , o una lista de
valores, al nombre de la función al momento de terminar su
ejecución.

Implementación:
PHP – Función Variable
PHP soporta el concepto de funciones variable, esto significa que si una
variable tiene unos paréntesis añadidos al final, PHP buscará una función
con el mismo nombre que la evaluación de la variable, e intentará
ejecutarla.

Ejemplo:
PHP – Función Anónima
Las funciones anónimas (closures) son muy útiles a la hora de utilizarlas
dentro de callbacks , las funciones anónimas carecen de nombre.

Nosotros en este curso no vamos a analizar el tema en profundidad ya que


es introductorio , pero vamos a mostrar un ejemplo de como definir un
tipo de función anónima variable.
PHP – Pasaje de parámetros por referencia
En PHP disponemos también del concepto de pasaje de parametro por referencia , para
pasar una variable por referencia es necesario anteponer un ampersand (&) delante del
nombre del parametro en la declaración de la función.

Vista:
PHP – Pasaje de parámetros por copia
Este método de pasaje de parámetros es el cual PHP utiliza por defecto ,
permite generar un cierto nivel de ocultamiento de datos.

Vista:
PHP – Alcance de variables en funciones
En funciones también podremos aplicar el concepto de variables locales y
globales.

Una variable local a una función es aquella que es declarada dentro del cuerpo de
la función y solo existirá dentro del contexto de la función , su tiempo de vida se
corresponde con el tiempo de ejecución de la función.

Como podremos observar en el ejemplo $variable existe unicamente dentro del


cuerpo de la función por lo tanto podremos acceder a dicha variable unicamente
dentro del cuerpo de la función.
PHP – Flexibilizando el pasaje de parámetros en una función
Como a esta altura ya sabemos , la declaración de una función esta compuesta por la
palabra reservada function , un identificador (nombre) , la lista de parámetros que
aceptara y el cuerpo de la función , pues bien dicha lista de parámetros es FIJA ,
imaginemos que declaramos una función de nombre Lista y le declaramos un único
parámetro de nombre $variable , el formato de invocación deberá ser el siguiente:

Lista($variable); o Lista('Valor');

Pues bien ahora yo necesito que en vez de un parámetro admita dos parámetros , debería
claro , modificar su declaración y agregar un parámetro más , lo cual en un sistema de
gran envergadura me seria tedioso.

PHP al rescate! , en PHP disponemos de una función (func_get_args();) , la cual devuelve


un arreglo con todos los parámetros pasados a la función en donde se encuentre , de este
modo nosotros podremos tener una función Lista() , la cual admitirá ningún parámetro ,
uno o múltiples parámetros.

En la siguiente diapositiva veremos la forma de implementarla y un ejemplo de utilización


real.
PHP – Flexibilizando el pasaje de parámetros en una función

Como hemos dicho en la diapositiva anterior , disponemos de la función


func_get_args() la cual nos retorna un arreglo con indicé numérico (posición del
parámetro) y el campo valor de cada elemento sera el valor que fue pasado en
parámetro.

Como podremos observar en la implementación anterior , estamos declarando una


variable local de nombre $parametros la cual contendrá el arreglo con todos los
parámetros que reciba Imprime al momento de ser invocada , la salida generada
por ese script seria la siguiente:
PHP – Como saber si una función existe
En ciertas ocasiones podremos encontrarnos en la necesidad de saber la real
existencia de una función o procedimiento en PHP , ya que si invocamos una
función o procedimiento inexistente estaremos provocando un error.

PHP nos permite verificar la existencia de una función o procedimiento mediante


la función nativa función_exists(“nombre”) la cual retorna true si la función o
procedimiento nombre existe , y false si no existe.

Implementación:
SQL – Manejo de Base de Datos
SQL – Sintaxis SQL

SQL es un lenguaje de consulta a base de datos


muy poderoso y difundido ,a continuación
veremos las operaciones básicas sobre base de
datos .
SQL – Sentencia Create Database

La sentencia create database permite crear una base


de datos nueva en nuestro servidor.

Una demostración de como utilizarla seria la


siguiente:

CREATE DATABASE nombre_base;


SQL – Sentencia Create Table
La sentencia create table permite crear una tabla en nuestra base de datos , la
sintaxis es la siguiente:

CREATE TABLE nombre_tabla


(
nombre_columna tipo_dato,
nombre_columna tipo_dato,
)

Ejemplo:

CREATE TABLE persona (


Nombre varchar(255),
Edad int(2),
)
SQL – Sentencia DROP
Mediante la sentencia DROP podremos eliminar una base de datos
completa o eliminar una tabla de una base de datos.

Eliminar base de datos completa:

DROP DATABASE nombre_base

Eliminar tabla de base de datos:

DROP TABLE nombre_tabla


SQL – Insertar un nuevo registro

Para insertar un nuevo registro en un tabla


disponemos de la operación INSERT cuya
sintaxis es la siguiente:

INSERT tabla (campo1,campo2,campoN)


VALUES(valor1,valor2,valorN)
SQL – Modificar un registro

SQL permite modificar el valor de un campo de un


registro mediante el uso de UPDATE , la sintaxis
de uso es la siguiente:

UPDATE tabla SET campo=VALOR


SQL – Seleccionar registros
Mediante el uso de SELECT podremos seleccionar información
total o parcial sobre registros, la sintaxis de select es la
siguiente:

Select selectivo (más eficiente y seguro):

SELECT campo1,campo2,campo3 FROM tabla

Select total (ineficiente e inseguro):

SELECT * FROM tabla


SQL – Eliminar un registro

Con SQL podremos eliminar un registro (fila)


mediante DELETE , veamos su sintaxis.

DELETE FROM tabla


SQL – Agregando selectividad
Para adicionar selectividad a las clausulas DELETE , UPDATE Y SELECT Sql
dispone de otra clausula más la cual se llamada WHERE , esta permite construir
criterios lógicos con los cuales podremos ejecutar acciones sobre un conjunto
más especifico de registros.

Ejemplos:

SELECT * FROM personas WHERE edad>45

DELETE * FROM personas WHERE edad>45 AND sexo='F'

UPDATE personas SET activo='0' WHERE (nombre='Juana' OR nombre='Pedro')


SQL – Recuperar registros eliminando del RecordSet los duplicados
Mediante el uso de DISTINCT en colaboración con la clausula SELECT
podremos recuperar registros de la base de datos no duplicados.

Ejemplo:

Registro 1 – Juan 23 Masculino


Registro 2 – Juan 23 Masculino
Registro 3 – Pablo 45 Masculino

Recuperando...

SELECT DISTINCT * FROM tabla

Al ejecutar dicha consulta y ver la cantidad de registros que nos entrego ,


podremos notar que solamente tenemos 2 registro , en vez de 3 ya que un
registro se encuentra duplicado y mediante distinct hemos declarado que solo
queremos registros distintos.
SQL – Construyendo consultas más inteligentes
En ciertas ocasiones nos vemos obligados a implementar consultas SQL más selectivas ya
sea por seguridad o eficiencia, para esto SQL nos permite unir condiciones mediante el
uso de los operadores lógicos AND y OR.

Ejemplos:

SELECT * FROM tabla WHERE edad>45 AND (nombre='Mercedes' OR nombre='Eliana')

También podremos agrupar sentencias mediante el uso de paréntesis , veamos un ejemplo


más complejo.

SELECT edad,nombre FROM tabla WHERE (edad>45 AND edad<50) AND (sexo='F' OR
sexo'M') AND (ciudad='La Plata' AND barrio='ADSL')

Dicha consulta significa:

Obtener edad y nombre de todos los registros que la edad sea mayor que 45 y menor a 50
años y el sexo sea Femenino o Masculino y la ciudad sea La Plata y el barrio sea Altos de
San Lorenzo (ADSL).
SQL – Ordenando RecordSet
El lenguaje SQL dispone de la palabra clave ORDER BY que permite
ordenar el resultado de una consulta SQL por dos criterios ascendente o
descendente.

Sintaxis:

SELECT columnas FROM tabla WHERE condiciones ORDER BY


columnas [ASC/DESC]

Ejemplo:

SELECT * FROM persona WHERE nombre='Juana' ORDER BY edad


DESC
PHP – Recuperando Información de formularios
PHP – Recuperando Información
Como hemos dicho en la introducción de este curso , en HTML
disponemos de dos métodos para enviar un formulario ellos son GET
Y POST.

Al momento de enviar nosotros un formulario por cualquiera de estos


dos métodos estamos enviando la información en una estructura de
datos del tipo arreglo , entonces desde PHP podremos manipular
dicha estructura para obtener los datos del siguiente modo.
Usando MySQL desde PHP
PHP – Conectando a una bd MySQL

Para poder conectarnos desde PHP a una base de datos MySQL , PHP
dispone de la función nativa mysql_connect , la cual devuelve un recurso
de false si fallo.

Ejemplo de conexión:
PHP – Conectando a una bd MySQL
Ahora pues bien , una vez conectados debemos seleccionar sobre que base de
datos deseamos trabajar , ya que la al conectarnos solamente realizamos la
conexión al servidor de la bd sin seleccionar sobre que base deseamos
trabajar,para esto PHP dispone de la función mysql_select_db() la cual
permite seleccionar sobre que base de datos deseamos operar.

Ejemplo:
PHP – Realizando una consulta a una BD MySQL
Para poder ejecutar una consulta SQL sobre una base de datos MySQL , PHP
dispone de la función mysql_query la cual permite enviar una única consulta
a la base de datos que se encuentre activa en el recurso de conexión.

mysql_query devuelve el resultado de la ejecución de la consulta o false si no


pudo ser ejecutada la consulta.

Ejemplo:
PHP – Verificando si una consulta retorno registros o no
En ciertas ocasiones el programador puede estar interesado en saber la cantidad de
registros que retorno una consulta , para tal función existe mysql_num_rows , la
cual retorna un valor entero positivo indicando la cantidad de registros
retornados por la consulta.

Ejemplo:
PHP – Recuperar resultados de una consulta
mysql_fetch_array($consulta,MYSQL_NUM): Dicha función devuelve un
arreglo que dispone de dos métodos de acceso mediante índice numérico.

mysql_fetch_assoc: Dicha función devuelve un arreglo asociativo en donde la


clave de cada elemento sera el campo de la tabla al cual corresponda y el
valor de cada elemento sera el valor en la tabla.

mysql_fetch_object: Dicha función devuelve los datos en forma de objeto y


facilita en gran medida al programador ya que es más legible acceder a una
propiedad de un objeto que a un arreglo.

Siempre que se intente recuperar información mediante alguno de estos tres


metodos debera verificar previamente la existencia de resultados mediante
mysql_num_rows!
PHP – Recuperar resultados de una consulta

A continuación pondremos ejemplos de como


utilizar las tres funciones anteriormente
descriptas.
PHP – Cerrando una conexión a MySQL

En ciertas ocasiones es necesario cerrar el recurso que


hemos obtenido mediante mysql_connect , ya sea por una
cuestión de eficiencia o pureza del sistema , para esto
PHP dispone de la función mysql_close , la cual permite
finalizar y liberar los recursos ocupados por el vinculo al
servidor de base de datos.

Implementación:
PHP – Clases y Objetos (OOP)
PHP – Definición de Objeto
Mediante técnicas de abstracción podremos abstraer un objeto
de la vida real y modelizarlo , es decir definir le atributos y
comportamientos(métodos) del objeto de la vida real.

Ejemplo:

Objeto : Auto
Atributo: Patente (FGH 345)
Comportamiento: Avanzar , Retroceder , Frenar , Acelerar
PHP – Definición de Clase
Una clase es una unidad lógica que agrupa propiedades
(atributos) y métodos (comportamientos) con una
cierta correspondencia lógica.

Ejemplo:

Clase: Transporte
Método: Avanzar
Método: Detener
Método: Retroceder
PHP – Estructura de una clase
PHP – Estructura de una clase
Como observamos en la diapositiva anterior existen ciertos aspectos a tener
en cuenta a la hora de diseñar una clase , ellos son los siguiente:

Cada clase debe comenzar por la palabra clave class seguida de un


identificador que debe comenzar por guion bajo o una letra y que debe
estar compuesto por caracteres alfanuméricos.

Cada clase posee un constructor , este es el encargado de retornar una


instancia de dicha clase a cualquier punto de instanciación.

Dentro de la clase no pueden existir dos métodos con el mismo nombre ,


ya que PHP no soporta sobrecarga de métodos.

Para definir una variable nueva se deben ubicar entre el nombre de la


clase y el constructor de la misma.
PHP – Estructura de un método
La estructura básica de un método se compone del modificador
de ámbito (public/private) seguido de la palabra reservada
function , un identificador que debe comenzar con una letra o
guion bajo y debe estar compuesto por caracteres
alfanuméricos , una lista de parámetros encerrada entre
paréntesis (optativa) y el cuerpo del método (instrucciones).

Ejemplo:
PHP – Ámbito de los métodos
Los métodos al igual que las variables poseen un modificador
de ámbito , el cual permite establecer la visibilidad de un
método. Disponemos de dos modificadores public (publico)
el cual establece que podremos acceder lo desde una variable
de una instancia de la clase y private (privado) que establece
que solamente podremos acceder desde dentro del contexto de
la clase.
PHP – Ámbito de las variables

Como hemos observado en la diapositiva anterior


PHP nos permitió definir el ámbito de un
método , también nos permitirá definir el ámbito
de una propiedad (variable) del siguiente modo:
PHP – Ámbito e invocaciones

Un atributo o método definido como privado solo puede ser


utilizado dentro del contexto de la clase (this).

Un atributo o método publico puede ser invocado desde el


mismo contexto de la clase o desde una variable de instancia
de la clase (objeto).

En la diapositiva siguiente veremos un ejemplo integrador del


tema ámbito tanto en atributos como en métodos.
PHP – Ejemplo Integrador
PHP – Acceso a métodos y Propiedades

En PHP orientado a Clases para acceder a métodos pertenecientes


a una variable de instancia (objeto) utilizamos la construcción →
, la cual nos permite acceder tanto a métodos como atributos de
una clase.

Ejemplos:
PHP – Métodos Estáticos y Constantes
En PHP disponemos de métodos estáticos los cuales no pueden acceder a atributos
de la clase ya que un método estático puede ser invocado sin necesidad de crear
un objeto de dicha clase.

Para definir un método como estático hay que adicionar la palabra reservada static
justo después del modificador de ámbito.

Ejemplo de declaración:

Para invocar a un miembro estático (método estático o constante) de una clase


debemos utilizar el operador de resolución :: (Paamayim Nekudotayim).
PHP – Herencia
Analicemos primero el concepto de herencia con este sencillo
ejemplo.

Una madre posee dos hijos un varón y una mujer , el varón hereda
el color de pelo de su madre mientras que la hija hereda el color
de pelo también de su madre , entonces ambos heredan una
característica (atributo) de su madre.

Según nuestro ejemplo nos seria de utilidad modelar una clase


Madre que contenga el atributo publico color de pelo y diseñar
una clase hijo que herede de madre , de este modo tendremos en
forma automática acceso a todos los atributos públicos (color de
pelo) de la clase Madre.
PHP - Herencia

Mediante la utilización de la técnica de herencia


podremos heredar métodos y atributos públicos
unicamente.

PHP admite unicamente la herencia simple es decir


una clase podrá heredar de unicamente de una
sola clase Madre o Padre , pero no podrá heredar
en forma simultanea de Madre y Padre.
PHP – Herencia
PHP dispone de la palabra reservada extends la cual permite heredar una clase de
otra o mejor dicho extender la clase Madre.

Recordemos que podremos heredar solamente de una clase Base (Madre) , ya que
PHP no admite herencia múltiple.

Ejemplo de implementación de extends:

En dicha implementación tenemos una clase Hija llamada FordSierra y una clase
Base (Madre) llamada Auto , mediante extends heredamos todos los atributos y
metodos de Auto en la clase Hija FordSierra.
PHP - Herencia
Imaginemos el siguiente ejemplo , disponemos de una clase Auto la
cual tiene definidos 3 métodos Avanzar , Retroceder , Frenar y a su
vez disponemos de dos modelos de auto Sierra y Falcón ambos
modelos de auto tienen la particularidad de que son del tipo de Objeto
Auto , es decir ambos son autos , entonces dichos autos también
deben tener los métodos Avanzar , Retroceder y Frenar .

Tenemos dos caminos para implementar dichos métodos , volver a


implementar los 3 métodos (Avanzar,Retroceder,Frenar) o bien hacer
que el objeto (clase) FordSierra Herede de la clase Auto y a su vez
también realizar lo mismo con la clase FordFalcon es decir hacer que
la clase FordFalcon herede la clase Auto , de este modo al invocar una
instancia de la clase FordFalcon disponemos del método Avanzar
heredado de la clase Auto.
PHP – Herencia – Ejemplo Auto
PHP – PERSISTENCIA
PHP – Concepto de Persistencia
“...Mi recuerdo de tu amor persiste en mi memoria...”

“...El amor por mi club persiste más allá de las derrotas...”

Como podremos observar el termino persistencia lo estamos


utilizando con el fin de indicar que una sensación dura sin
importar que suceso ocurra.

En Informática persistencia se usa de un modo semejante , ya que


persistencia lo usamos para indicar que un dato esta de algún
modo almacenado y existe más halla de cualquier suceso
externo.
PHP – Métodos de Persistencia
Desde PHP disponemos de tres métodos básicos de persistencia
los cuales son:

Persistencia en Sesiones
Persistencia en Cookies
Persistencia en Base de Datos.

En este curso unicamente explicaremos persistencia en


sesiones ya que debido al poco tiempo que disponemos
debemos omitir algunos
temas.
PHP – Persistencia en Sesiones
A continuación expondremos un código comentado en donde
daremos los lineamientos generales del uso sesiones en PHP.

Ejemplo de implementación:
PHP – Persistencia de Objetos
La persistencia de objetos nos puede ser útil para mantener una
única instancia de conexión a una base de datos a lo largo de
todo el sistema (esta aplicación es totalmente insegura) , la
forma de generar persistencia sobre un objeto consiste en
serializarlo y almacenarlo en una sesión , luego para volver a
recuperar el objeto desde otro punto de nuestra aplicación
debemos deserializar el objeto y disponer de la definición de la
clase a la cual pertenece el objeto que hemos deserializado, es
decir , si serializamos un objeto perteneciente a la instanciación
de la clase Auto debemos poseer definición de la clase Auto
incluida en donde deseamos reutilizar dicho Objeto , de lo
contrario nos dara error.
PHP – Persistencia de Objetos
FIN DEL CURSO

Para más información sobre los temas expuestos en este curso


usted podrá ingresar a www.php.net (Sitio Oficial de PHP) y
también podrá ingresar a www.forosdelweb.com.

Por ultimo muchísimas gracias por participar del curso y como he


dicho el primer día del curso , me podrán ubicar siempre vía msn
para realizar cualquier tipo de consulta.

FIN.