Download pdf - Investigación de PHP

Transcript

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 1/29

 

Planteamiento de la investigación

1.  Que es el Lenguaje PHP, ventajas y funcionalidad(donde y como se aplica)

2.  Cuáles son las variables, tipos de datos y Funciones del Lenguaje PHP. cada una y

ejemplos

3.  Las sentencias de control en PHP como se aplican a la programación PHP

4.  Como se ejecutan los scripts de PHP y como se combinan con HTML

5.  Acceso a datos con PHP, funciones de datos de PHP con MySql

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 2/29

 

1.  ¿Qué es PHP?

PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de

páginas web dinámicas. Se usa principalmente para la 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+.

Ventajas

  Es un lenguaje multiplataforma.

  Orientado al desarrollo de aplicaciones web dinámicas con acceso a información

almacenada en una base de datos.

  El código fuente escrito en PHP es invisible al navegador web y al cliente ya que es el

servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador.

Esto hace que la programación en PHP sea segura y confiable.

  Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en

la actualidad, destaca su conectividad con MySQL y PostgreSQL.  Capacidad de expandir su potencial utilizando módulos (llamados ext's o extensiones).

  Posee una amplia documentación en su sitio web oficial, entre la cual se destaca que todas

las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.

  Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

  Permite aplicar técnicas de programación orientada a objetos.

  Biblioteca nativa de funciones sumamente amplia e incluida.

  No requiere definición de tipos de variables aunque sus variables se pueden evaluar

también por el tipo que estén manejando en tiempo de ejecución.

  Tiene manejo de excepciones (desde PHP5).

  Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de

programar (muchos otros lenguajes tampoco lo hacen), aun haciéndolo, el programadorpuede aplicar en su trabajo cualquier técnica de programación o de desarrollo que le

permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los

desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador

(MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la

interfaz de usuario en tres componentes independientes.

Inconvenientes

  Como es un lenguaje que se interpreta en ejecución, para ciertos usos puede resultar un

inconveniente que el código fuente no pueda ser ocultado. La ofuscación es una técnica

que puede dificultar la lectura del código pero no la impide y, en ciertos casos, representa

un costo en tiempos de ejecución.

Funcionalidades de PHP

  SimpleXML: Parser de XML muy sencillo y potente, ya he hablado de esta librería y la

diferencia con el método anterior de parsing de los xml es abismal.

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 3/29

 

  JSON y SOAP: Para la comunicación entre aplicaciones, a mí personalmente JSON me

encanta y su uso es simple, muy simple.

  PDO: capa de abstracción para acceso de la BD que nos permite acceder a MS SQL Server,

Sybase, Firebird/Interbase, IBM, Informix, MySQL, Oracle, ODBC y DB2, PostgreSQL, SQLite

de forma transparente.

  SPL: o Standard PHP Library, permite convertir elementos en arrays y tratarlos con

iteradores.

  SQLite: librería para poder trabajar con esta base de datos (SQLite).

Los principales usos del PHP son los siguientes:

  Programación de páginas web dinámicas, habitualmente en combinación con el motor de

base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el

estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión.

  Programación en consola, al estilo de Perl o Shell scripting.

 Creación de aplicaciones gráficas independientes del navegador, por medio de lacombinación de PHP y Qt/GTK+, lo que permite desarrollar aplicaciones de escritorio en

los sistemas operativos en los que está soportado.

2.  Cuáles son las variables, tipos de datos y Funciones del Lenguaje PHP. cada una

y ejemplos

Variables

Las variables son un espacio o área de memoria dispuesta para almacenar un valor para su

posterior uso por el script, que tiene asignado un identificador (nombre). El valor puede ser una

cadena o un número.

En php no hace falta declarar una variable antes de su uso, ni establecer su tipo. Su nombre puede

ser una combinación de letras (a-Z), números y guiones bajos, precedidos con el signo $. El primer

carácter no puede ser un número, y php diferencia entre mayúsculas y minúsculas.

$var no es igual a $Var

Para utilizar una variable basta con asignarle un valor, usando para ello el operador =

Si el valor es una cadena, necesita ir entrecomillado.

<?php

$ciudad = "Madrid"; // el valor de ciudad es Madrid

$ciudad = "Zaragoza"; // ciudad ahora es Zaragoza$Ciudad = "Barcelona"; // esta es otra variable distinta

?>

Dependiendo de la información que contenga, tenemos diversos tipos de variables:

integer contiene un número entero

double contiene un número con decimales

string una cadena de caracteres

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 4/29

 

<?php

$int = 1; // integro

$doub = 1,5; // double

$string1 = "1"; // string

$string2 = "uno"; // string

$fecha = date(Y); // también podemos asignar a variables el resultado de

// una función.

?>

El valor de una variable ha de asignarse entrecomillado, salvo que se trate de un valor numérico.

Tipado (casting) de variables

A diferencia de otros lenguajes, al declarar una variable no tenemos que indicar a que tipo

pertenece. Php lo hará por nosotros de acuerdo con su contenido y el contexto.

Aunque no es necesario, podemos especificar el tipo de la variable, o forzar su conversión. Forzarun tipo de variable puede ser muy útil, por ejemplo para validar la entrada de datos por usuarios

desde un formulario.

<?php

$cadena="5"; //esto es una cadena

$entero=3; //esto es un entero

echo $cadena+$entero //daría el resultado 8

$mivar = "3"; // $mivar es tipo string

$mivar = 2 + $mivar; // automaticamente se convierte a tipo integer// $mivar ahora vale 5

$mivar = (string)123;// creamos $mivar como cadena

settype($mivar, "double"); // forzamos su cambio a tipo double

// el cambio forzado afecta al valor de la

// variable:

// $mivar = 3.5;

// $mivar = (integer)$mivar; -> valor 3

// $mivar = (boolean)$mivar; -> valor 1

?>

Averiguando el tipo de una variable

Si necesitamos saber a qué tipo pertenece una variable podemos usar la función gettype():

<?php

$mivar = "123";

echo gettype($mivar); // string

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 5/29

 

$mivar = 123;

echo gettype($mivar); // integer

?>

Chequeando tipos concretos

Si lo que necesitamos es saber si se trata de un tipo concreto de variables, podemos usar una

función ad hoc: Todas ellas tomas como parámetro el nombre de la función a chequear, y

devuelven verdadero o falso

Un dato importante a tener en cuenta es que una variable, sea cual sea su tipo, si es pasada vía

GET o POST automáticamente se convierte en tipo string. Por ello no podremos utilizar is_integer,

por ejemplo, sino is_numeric, que no indaga acerca del tipo de variable, sino acerca de los

caracteres que la componen.

is_array()

is_bool()

is_double()is_float()

is_int()

is_integer()

is_long()

is_null()

is_numeric()

is_object()

is_real()

is_resource()

is_scalar()

is_string()valores por referencia

A partir de php 4 además de pasar un valor a una variable por asignación, podemos pasárselo por

referencia

Para ello creamos una nueva variable que referencia ("se convierte en un alias de" o "apunta a") la

variable original. Los cambios a la nueva variable afectan a la original, y viceversa.

Para asignar por referencia, simplemente se antepone un ampersand (&) al comienzo de la

variable cuyo valor se está asignando.

<?php

$a = 5; // $a vale 5

$b = &$a; // $b vale 5

$b = $b + 3; // $b vale 8. $a TAMBIEN vale 8 ahora.

/* los valores serán $a = 8 y $b = 8; */

?>

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 6/29

 

Constantes

Son aquellas cuyo valor no va a cambiar a lo largo de la ejecución del script. Para asignarles un

valor se usa la función define()

<?php

define ("AUTOR_EMAIL","[email protected]");

echo AUTOR_EMAIL; // imprime [email protected]

// observa que las variables constantes

// no necesitan del signo $

// Las constantes NO pueden ir entrecomilladas.

?>

Podemos utilizar la funcion defined() para chequear si una constante está definida o no.

Por último, PHP ofrece diversas constantes predefinidas:

<?php

echo __FILE__ ."<br>"; // nombre del archivo

echo __LINE__ ."<br>"; // número de línea de código

echo PHP_VERSION."<br>"; // número de versión php

echo PHP_OS ."<br>"; // sistema operativo

echo TRUE."<br>"; // valor verdadero (1)

echo FALSE."<br>"; // valor falso (0 o cadena vacía)

echo NULL."<br>"; // sin valor

?>

Variables de variables

Podemos reutilizar el valor de una variable como nombre de otra variable

<?php

$var = "ciudad"; // tenemos una variable var, valor ciudad

$$var = "Madrid"; // creamos una variable llamada ciudad, con valor Madrid.

// echo $ciudad nos daría "Madrid".

?>

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 7/29

 

FUNCIONES EN PHP

Una de las herramientas más importantes en cualquier lenguaje de programación son las

funciones. Una función consiste en un conjunto de rutinas y acciones que a lo largo del script van a

ser ejecutadas multitud de veces agrupados en una FUNCION y desde cualquier punto del script

puede ser llamada y ejecutada. A su vez, esta función puede recibir parámetros externos de los

cuales dependa el resultado de una función.

Las funciones deben ser colocadas siempre antes de realizar la llamada a la función (como es

lógico). La sintaxis de una función es la siguiente:

function nombre(parámetros){

instrucciones de la función

}

para llamar a la función sería de la siguiente forma: nombre(parámetros) 

Un ejemplo para entender el uso de funciones es el siguiente:

Crearemos una función que realice la suma de dos números y muestre el resultado

function sumar($sumando1,$sumando2){

$ suma=$sumando1+$sumando2

echo $sumando1."+".$sumando2."=".$suma;

}

sumar(5,6)

Un hecho relevante que cabe destacar es que las variables que declaremos dentro de la funciónsolo existirán o tendrán dicho valor dentro de la función.

Existen casos en los cuales no sabemos el número de parámetros que le pasaremos a la función y

en estos casos debemos usar las funciones creadas al efecto como son:

func_num_args() Numero de parámetros que se le han pasado a la función

func_get_args() Devuelve un elemento de los que forman la lista de argumentos

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 8/29

 

3.  Las sentencias de control en PHP como se aplican a la programación PHP

Todo script PHP está construido en base a una serie de sentencias. Una sentencia puede ser una

asignación, una llamada de función, un ciclo, una sentencia condicional o incluso una sentencia

que no hace nada (una sentencia vacía). Las sentencias generalmente finalizan con un punto y

coma. Adicionalmente, las sentencias pueden agruparse en un conjunto de sentencias,encapsulándolas entre corchetes. Un grupo de sentencias es una sentencia por sí misma también.

ESTRUCTURAS DE CONTROL 

Estructura IF

If  

El constructor if es una de las características más importantes de muchos lenguajes, incluido PHP.

Permite la ejecución condicional de fragmentos de código. PHP dispone de una estructura if que es

similar a la de C:

If (expr)Sentencia

Si la expresión se evalúa comoTRUE, PHP ejecutará la sentencia y si se evalúa como FALSE la

ignorará

El siguiente ejemplo mostraría a es mayor que b si $a es mayor que $b:

<?php

if ($a > $b)

echo "a es mayor que b";?>

A menudo se desea tener más de una sentencia para ser ejecutada condicionalmente. Por

supuesto, no hay necesidad de envolver cada sentencia con una cláusula if . En cambio, se pueden

agrupar varias sentencias en un grupo de sentencias. Por ejemplo, este código mostraría a es

mayor que b si $a es mayor que $b y entonces asignaría el valor de $a a $b:

<?php

if ($a > $b) {

echo "a es mayor que b";

$b = $a;

}?>

Las sentencias if pueden anidarse dentro de otra sentencias if infinitamente, lo cual provee

completa flexibilidad para la ejecución condicional de diferentes partes del programa.

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 9/29

 

Else 

Con frecuencia se desea ejecutar una sentencia si una determinada condición se cumple y una

sentencia diferente si la condición no se cumple. Esto es para lo que sirve else. El else extiende una

sentencia if para ejecutar una sentencia en caso que la expresión en la sentencia if se evalúe

como FALSE. Por ejemplo, el siguiente código deberá mostrar a es mayor que b si $a es mayorque $b y a NO es mayor que b en el caso contrario

<?php

if ($a > $b) {

echo "a es mayor que b";

} else {

echo "a NO es mayor que b";

}

?>

La sentencia else sólo es ejecutada si la expresión if es evaluada como FALSE y si hay algunas

expresiones elseif - sólo se ejecuta si también todas son evaluadas como FALSE

Elseif /else if  

elseif , como su nombre lo sugiere, es una combinación de if y else. Del mismo modo que else,

extiende una sentencia if para ejecutar una sentencia diferente en caso que la expresión if original

se evalúe como FALSE. Sin embargo, a diferencia de else, esa expresión alternativa sólo se

ejecutará si la expresión condicional del elseif se evalúa como TRUE. Por ejemplo, el siguiente

código debe mostrar a es mayor que b, a es igual que b o a es menor que b

<?php

if ($a > $b) {

echo "a es mayor que b";

} elseif ($a == $b) {

echo "a es igual que b";

} else {

echo "a es menor que b";

}

?>

Puede haber varios elseif dentro de la misma sentencia if . La primera expresión elseif (si hay

alguna) que se evalúe como TRUEsería ejecutada. En PHP también se puede escribir 'else if' (en

dos palabras) y el comportamiento sería idéntico al de 'elseif' (en una sola palabra). El significadosintáctico es ligeramente diferente (si se está familiarizado con C, este es el mismo

comportamiento) pero la conclusión es que ambos resultarían tener exactamente el mismo

comportamiento.

La sentencia elseif es ejecutada solamente si la expresión if precedente y cualquiera de las

expresiones elseif precedentes son evaluadas como FALSE, y la expresión elseif actual se evalúa

como TRUE

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 10/29

 

Sintaxis alternativa de estructuras de control

PHP ofrece una sintaxis alternativa para algunas de sus estructuras de control; a

saber: if , while, for , foreach, y switch. En cada caso, la forma básica de la sintaxis alternativa es

cambiar el corchete de apertura por dos puntos(:) y el corchete de cierre

porendif;, endwhile;, endfor;, endforeach;, o endswitch;, respectivamente.

<?php if ($a == 5): ?>

A es igual a 5

<?php endif; ?>

En el ejemplo anterior, el bloque HTML "A es igual a 5" se anida dentro de una sentencia if escrita

en la sintaxis alternativa. El bloque HTML se mostraría solamente si $a es igual a 5.

La sintaxis alternativa también se aplica a else y elseif . El siguiente es una

estructura if con elseif y else en el formato alternativo:

<?php

if ($a == 5):

echo "a igual 5";

echo "...";

elseif ($a == 6):

echo "a igual 6";

echo "!!!";

else:

echo "a no es 5 ni 6";

endif;

?>

While 

Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que su contrapartida

en C. La forma básica de una sentencia while es:

while (expr)

sentencia

El significado de una sentencia while es simple. Le dice a PHP que ejecute las sentencias anidadas,

tanto como la expresión whilese evalúe como TRUE. El valor de la expresión es verificado cada vez

al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentenciasanidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las

sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa

como FALSE desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.

Al igual que con la sentencia if , se pueden agrupar varias instrucciones dentro del mismo

bucle while rodeando un grupo de sentencias con corchetes, o utilizando la sintaxis alternativa:

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 11/29

 

while (expr):

sentencias

...

endwhile;

Los siguientes ejemplos son idénticos y ambos presentan los números del 1 al 10:

<?php

/* ejemplo 1 */

$i = 1;

while ($i <= 10) {

echo $i++; /* el valor presentado sería

$i antes del incremento

(post-incremento) */

}

/* ejemplo 2 */

$i = 1;

while ($i <= 10):

echo $i;

$i++;

endwhile;

?>

Do-while 

Los bucles do-while son muy similares a los bucles while, excepto que la expresión verdadera esverificada al final de cada iteración en lugar que al principio. La diferencia principal con los

bucles while es que está garantizado que corra la primera iteración de un bucle do-while (la

expresión verdadera sólo es verificada al final de la iteración), mientras que no necesariamente va

a correr con un bucle while regular (la expresión verdadera es verificada al principio de cada

iteración, si se evalúa como FALSE justo desde el comienzo, la ejecución del bucle terminaría

inmediatamente).

Hay una sola sintaxis para bucles do-while

<?php

$i = 0;do {

echo $i;

} while ($i > 0);

?>

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 12/29

 

El bucle de arriba se ejecutaría exactamente una sola vez, ya que después de la primera iteración,

cuando la expresión verdadera es verificada, se evalúa como FALSE ($i no es mayor que 0) y

termina la ejecución del bucle.

Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do-while,

para permitir parar la ejecución en medio de los bloques de código, mediante el encapsulado

con do-while (0), y utilizando la sentencia break. El siguiente fragmento de código demuestra esto:

<?php

do {

if ($i < 5) {

echo "i no es lo suficientemente grande";

break;

}

$i *= $factor;

if ($i < $minimum_limit) {

break;

}echo "i está bien";

/* procesar i */

} while (0);

?>

For  

Los bucles for son los ciclos más complejos en PHP. Se comportan como sus contrapartes en C. La

sintaxis de un bucle for es:

for (expr1; expr2; expr3)

sentencia

La primera expresión (expr1) es evaluada (ejecutada) una vez incondicionalmente al comienzo del

bucle.

En el comienzo de cada iteración, la expr2 es evaluada, Si es TRUE, el bucle continúa y las

sentencias anidadas son ejecutadas. Si se evalúa como FALSE, termina la ejecución del bucle.

Al final de cada iteración, la expr3 es evaluada (ejecutada).

Cada una de las expresiones puede estar vacía o contener múltiples expresiones separadas por

comas. En la expr2, todas las expresiones separadas por una coma son evaluadas pero el resultado

se toma de la última parte. Que la expr2 esté vacía significa que el bucle deberá ser corrido

indefinidamente (PHP implícitamente lo considera como TRUE, como en C). Esto puede no ser tan

inútil como se pudiera pensar, ya que muchas veces se quiere terminar el bucle usando una

sentencia condicional break en lugar de utilizar la expresión verdadera del for .

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 13/29

 

Considere los siguientes ejemplos. Todos ellos muestran los números del 1 al 10:

<?php

/* ejemplo 1 */

for ($i = 1; $i <= 10; $i++) {

echo $i;

}

/* ejemplo 2 */

for ($i = 1; ; $i++) {

if ($i > 10) {

break;

}

echo $i;

}

/* ejemplo 3 */

$i = 1;

for (; ; ) {

if ($i > 10) {

break;

}

echo $i;

$i++;

}

/* ejemplo 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);

?>

Por supuesto, el primer ejemplo parece ser el mejor (o quizás el cuarto), pero se puede encontrar

que la posibilidad de usar expresiones vacías en los bucles for resulta útil en muchas ocasiones.

Break  

break termina la ejecución de la estructura actual for , foreach, while, do-while o switch.

break acepta un argumento numérico opcional el cual indica de cuantas estructuras anidadas

encerradas se debe salir.

<?php

$arr = array('uno', 'dos', 'tres', 'cuatro', 'pare', 'cinco');

while (list(, $val) = each($arr)) {

if ($val == 'pare') {

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 14/29

 

break; /* Se puede también escribir 'break 1;' aquí. */

}

echo "$val<br />\n";

}

/* Usando el argumento opcional. */

$i = 0;

while (++$i) {

switch ($i) {

case 5:

echo "En 5<br />\n";

break 1; /* Sólo sale del switch. */

case 10:

echo "En 10; saliendo<br />\n";

break 2; /* Sale del switch y del while. */

default:

break;}

}

?>

Continue 

Continue se utiliza dentro de las estructuras de bucle para saltarse el resto de la actual iteración

del bucle y continuar la ejecución en la evaluación de la condición y entonces el comienzo de la

siguiente iteración.

Nota: Tenga en cuenta que en PHP la sentencia switch se considera una estructura de bucle para

los efectos del continue.

continue acepta un argumento numérico opcional el cual indica hasta el final de cuantos niveles de

bucles cerrados se debe saltar.

<?php

while (list($key, $value) = each($arr)) {

if (!($key % 2)) { // saltar miembros impares

continue;

}do_something_odd($value);

}

$i = 0;

while ($i++ < 5) {

echo "Outer<br />\n";

while (1) {

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 15/29

 

echo "Middle<br />\n";

while (1) {

echo "Inner<br />\n";

continue 3;

}

echo "This never gets output.<br />\n";

}

echo "Neither does this.<br />\n";

}

?>

Switch 

La sentencia switch es similar a una serie de sentencias IF en la misma expresión. En muchas

ocasiones, es posible que se quiera comparar la misma variable (o expresión) con muchos valores

diferentes, y ejecutar una parte de código distinta dependiendo de a que valor es igual. Para esto

es exactamente la expresión switch.

Nota: Cabe señalar que a diferencia de algunos otros lenguajes, la sentencia continue se aplicaa switch y actúa de manera similar a break . Si se tiene un switch dentro de un bucle y se deseacontinuar a la siguiente iteración de del ciclo exterior, se utiliza continue 2. 

Los dos ejemplos siguientes son dos formas diferentes de escribir lo mismo, uno con una seriede sentencias if y elseif , y el otro usando la sentencia switch:

Ejemplo #1 Estructura switch 

<?php

if ($i == 0) {echo "i es igual a 0";

} elseif ($i == 1) {

echo "i es igual a 1";

} elseif ($i == 2) {

echo "i es igual a 2";

}

switch ($i) {

case 0:

echo "i es igual a 0";

break;case 1:

echo "i es igual a 1";

break;

case 2:

echo "i es igual a 2";

break;

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 16/29

 

}

?>

Ejemplo #2 Estrutura switch permite el uso de strings 

<?php

switch ($i) {case "manzana":

echo "i es una manzana";

break;

case "barra":

echo "i es una barra";

break;

case "pastel":

echo "i es un pastel";

break;

}

?>

Es importante entender cómo la sentencia switch es ejecutada con el fin de evitar errores. La

sentencia switch ejecuta línea por línea (en realidad, sentencia por sentencia). Al principio, ningún

código es ejecutado. Sólo cuando una sentencia case es encontrada con un valor que coincide con

el valor de la sentencia switch, PHP comienza a ejecutar la sentencias. PHP continúa ejecutando las

sentencias hasta el final del bloque switch, o hasta la primera vez que vea una sentencia break . Si

no se escribe una sentencia break al final de la lista de sentencias de un caso, PHP seguirá

ejecutando las sentencias del caso siguiente. Por ejemplo:

?php

switch ($i) {

case 0:echo "i es igual a 0";

case 1:

echo "i es igual a 1";

case 2:

echo "i es igual a 2";

}

?>

Aquí, si $i es igual a 0, PHP ejecutaría todas las sentencias echo! Si $i es igual a 1, PHP ejecutaría

las últimas dos sentencias echo. Se obtendría el comportamiento esperado (se mostraría 'i es igual

a 2') sólo si $i es igual a 2. Por lo tanto, es importante no olvidar las sentencias break (aunque esposible que se desee evitar proporcionarlas a propósito bajo determinadas circunstancias).

En una sentencia switch, la condición es evaluada sólo una vez y el resultado es comparado con

cada una de las sentencias case. En una sentencia elseif , la condición es evaluada otra vez. Si la

condición es más complicada que una simple comparación y/o está en un bucle estrecho,

un switch puede ser más rápido.

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 17/29

 

La lista de sentencias para un caso también puede estar vacía, lo cual simplemente pasa el control

a la lista de sentencias para el siguiente caso.

<?php

switch ($i) {

case 0:

case 1:

case 2:

echo "i es menor que 3 pero no negativo";

break;

case 3:

echo "i es 3";

}

?> Un caso especial es el default . Este caso coincide con cualquier cosa que no se haya correspondido

por los otros casos. Por ejemplo:

<?php

switch ($i) {

case 0:

echo "i es igual a 0";

break;

case 1:

echo "i es igual a 1";

break;

case 2:

echo "i es igual a 2";

break;

default:

echo "i no es igual a 0, 1 ni 2";

}

?>

A expresión case puede ser cualquier expresión que se evalúa como un tipo simple, es decir,

entero o números de punto flotante y strings. Los arrays u objetos no se pueden utilizar aquí a

menos que sean desreferenciados a un tipo simple.

La sintaxis alternativa para las estructuras de control es compatible con los switch. Para obtener

más información, consulte Sintaxis alternativa de estructuras de control. 

<?php

switch ($i):

case 0:

echo "i es igual a 0";

break;

case 1:

echo "i es igual a 1";

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 18/29

 

break;

case 2:

echo "i es igual a 2";

break;

default: echo "i no es igual a 0, 1 ni 2";

endswitch;

?> 

Es posible utilizar un punto y coma en lugar de dos puntos después de un caso como:

<?php

switch($beer)

{

case 'tuborg';

case 'carlsberg';

case 'heineken';

echo 'Buena elección';break;

default;

echo 'Por favor haga una nueva selección...';

break;

}

?>

Eclare 

El constructor declare es usado para fijar directivas de ejecución para un bloque de código. La

sintaxis de declare es similar a la sintaxis de otros constructores de control de flujo:

declare (directive)

statement

La sección directive permite que el comportamiento de declare sea configurado. Actualmente, sólo

dos directivas están reconocidas: ticks (Ver abajo para más información sobre la directiva ticks) 

y encoding (Ver abajo para más información sobre la directiva encoding ).

Nota: La directiva encoding fue agregada en PHP 5.3.0

La parte statement del bloque declare será ejecutada - como se ejecuta y que efectos secundarios

ocurran durante la ejecución puede depender de la directiva fijada en el bloque directive.

El constructor declare también se puede utilizar en el alcance global, afectando a todo el código

que le sigue (sin embargo, si el archivo con el declare fue incluido entonces no afectará al archivo

padre).

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 19/29

 

?php

// estos son lo mismo:

// se puede usar ésto:

declare(ticks=1) {

// script entero aquí 

}

// o se puede usar ésto:

declare(ticks=1);

// script entero aquí 

?>

Ticks

Un tick es un evento que ocurre para cada sentencia tickable N de bajo nivel ejecutada por el

intérprete dentro del bloque declare. El valor para N se especifica usando ticks=N dentro del

bloque de declare de la sección directive.

No todas las sentencias son tickable. Por lo general, expresiones de condición y expresiones de

argumento no son tickables.

Los eventos que ocurren en cada tick se especifican mediante la register_tick_function(). Ver el

ejemplo abajo para más detalles. Tener en cuenta que más de un evento puede ocurrir por cada

tick.

Ejemplo #1 Ejemplo de uso del tick

<?php

declare(ticks=1);

// Una función llamada en cada evento tick

function tick_handler()

{

echo "tick_handler() llamado\n";

}

register_tick_function('tick_handler');

$a = 1;

if ($a > 0) {

$a += 2;

print($a);

}

?>

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 20/29

 

Encoding

Una codificación de script puede ser especificada para cada script usando la directiva encoding.

Ejemplo #2 Declarando un encoding para el script

<?phpdeclare(encoding='ISO-8859-1');

// código aquí 

?>

Return

Si se llama desde una función, la sentencia return() inmediatamente termina la ejecución de la

función actual, y retorna su argumento como el valor de la llamada a la función. return() también

pondrá fin a la ejecución de una sentencia eval() o a un archivo de script.

Si se llama desde el ámbito global, entonces la ejecución del script actual se termina. Si el archivo

script actual fue incluido con include() o require(), entonces el control es pasado de regreso al

archivo que hizo el llamado. Además, si el archivo script actual fue incluido, entonces el valor dado

a return() será retornado como el valor de la llamada include(). Si return() es llamado desde

dentro del archivo script principal, entonces termina la ejecución del script. Si el archivo script

actual fue nombrado por las opciones de

configuración auto_prepend_file o auto_append_file en php.ini , entonces se termina la ejecución

de ese archivo script.

require()

require() es idéntico a include() excepto que en caso de fallo producirá un error fatal de

nivel E_COMPILE_ERROR. En otras palabras, este detiene el script mientras que include() sólo

emitirá una advertencia (E_WARNING) lo cual permite continuar el script.

Véase la documentación de include() para más información.

Include()

La sentencia include() incluye y evalúa el archivo especificado.

La siguiente documentación también se aplica a require().

Los archivos son incluidos con base en la ruta de acceso dada o, si ninguna es dada,

el include_path especificado. Si el archivo no se encuentra en

el include_path, include() finalmente verificará en el propio directorio del script que hace el

llamado y en el directorio de trabajo actual, antes de fallar. El constructor include() emitirá

una advertencia si no puede encontrar un archivo, éste es un comportamiento diferente al

de require(), el cual emitirá un error fatal.

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 21/29

 

Si una ruta es definida — ya sea absoluta (comenzando con una letra de unidad o \ en Windows

o / en sistemas Unix/Linux) o relativa al directorio actual (comenzando con . o ..) — 

el include_path será ignorado por completo. Por ejemplo, si un nombre de archivo comienza

con ../ , el interprete buscará en el directorio padre para encontrar el archivo solicitado.

Para más información sobre como PHP maneja la inclusión de archivos y la ruta de accesos para

incluir, ver la documentación de include_path.

Cuando se incluye un archivo, el código que contiene hereda el ámbito de las variables de la línea

en la cual ocurre la inclusión. Cualquier variable disponible en esa línea del archivo que hace el

llamado, estará disponible en el archivo llamado, desde ese punto en adelante. Sin embargo, todas

las funciones y clases definidas en el archivo incluido tienen el ámbito global.

Ejemplo #1 Ejemplo básico de include()

vars.php

<?php

$color = 'verde';

$fruta = 'manzana';

?>

test.php

<?php

echo "Una $fruta $color"; // Una

include 'vars.php';

echo "Una $fruta $color"; // Una manzana verde

?>

Si la inclusión ocurre al interior de una función dentro del archivo que hace el llamado, entoncestodo el código contenido en el archivo llamado se comportará como si hubiera sido definidadentro de esa función. Por lo tanto, seguirá el ámbito de las variables de esa función. Unaexcepción a esta regla son las constantes mágicas las cuales son evaluadas por el intérpreteantes que ocurra la inclusión.

Ejemplo #2 Incluyendo dentro de funciones

<?php

function foo(){

global $color;

include 'vars.php';

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 22/29

 

echo "Una $fruta $color";}

 /* vars.php está en el ámbito de foo() así que *

* $fruta NO está disponible por fuera de éste ** ámbito. $color sí está porque fue declarado ** como global. */ 

foo(); // Una manzana verdeecho "Una $fruta $color"; // Una verde

?> 

Goto 

El operador goto puede ser usado para saltar a otra sección en el programa. El punto de destino es

especificado mediante una etiqueta seguida de dos puntos y la instrucción es dada

como goto seguida de la etiqueta del destino deseado. Este goto no es completamente sin

restricciones. La etiqueta de destino debe estar dentro del mismo fichero y contexto, lo que

significa que no se puede saltar fuera de una función o método, ni se puede saltar dentro de uno.

Tampoco se puede saltar dentro de cualquier clase de estructura de bucle o switch. Se puede

saltar fuera de estos y un uso común es utilizar un goto en lugar de un break multi-nivel.

Ejemplo #1 Ejemplo de goto

<?php

goto a;

echo 'Foo';

a:

echo 'Bar';

?>

El resultado del ejemplo sería:

Bar 

5. Acceso a datos con PHP, funciones de datos de PHP con MySql 

Instalación y configuración de MySQL. 1: descargar

Conectarse a la página web de MySQL, www.mysql.com

Seleccionar la pestaña Developer Zone y dentro de ella la sección Downloads

Elegir la versión estable más reciente de MySQL Community Server . A fecha de

febrero de 2009 es la 5.1

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 23/29

 

Seleccionar la plataforma Windows y descargar el archivo comprimido a una carpeta

temporal

Instalación y configuración de MySQL. 2: descomprimir e instalar

Descomprimir el archivo descargado en una carpeta temporal

Ejecutar el archivo setup.exe y seguir las indicaciones:Seleccionar instalación típica

Aceptar la carpeta de instalación por defecto

Pulsar el botón Finish para terminar la instalación y pasar a la configuración del

servidor

Instalación y configuración de MySQL. 3: configurar

Al finalizar la instalación se ejecuta el asistente para la configuración del servidor.

Seguir sus indicaciones:

Elegir la configuración estándar

Seleccionar la instalación como servicio Windows y Marcar la casilla para

lanzar el servidor automáticamente al arrancar el sistema

Establecer una contraseña para el administrador (root)

Pulsar el botón Execute para realizar la configuración

Pulsar el botón Finish para finalizar el asistente

Instalación y configuración de MySQL. 4: arrancar

Si se indicó el arranque automático en la configuración, el servidor se inicia de forma

automática al arrancar el sistema

En caso contrario hay que iniciarlo manualmente con Inicio > Programas > MySQL >

MySQL Server 5.1 > MySQL Server Instance Config Wizard

Instalación y configuración de MySQL. 5: conectar

Formas de establecer la conexión con el servidor:

Desde la línea de órdenes con Inicio > Programas > MySQL > MySQL

Server 5.1 > MySQL Command Line Client

Enter password: ********

mysql>

… 

mysql> exit

Mediante alguna herramienta que proporcione una interfaz gráfica como

phpMyAdmin

Desde una página web mediante la interfaz que proporciona MySQL. Eslo que haremos con la biblioteca de funciones de MySQL que posee PHP

Instalación y configuración de MySQL. 5: conectar

Para conectar con el servidor hay que crear antes una cuenta de usuario y asignarle

los correspondientes permisos de acceso. En general para una base de datos es

conveniente definir al menos dos usuarios:

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 24/29

 

Un usuario anónimo que tenga permisos de lectura sobre las tablas que

se estime adecuado

Un usuario administrador que tenga permisos para insertar, modificar o

eliminar elementos de las tablas de la base de datos

En cada conexión hay que indicar el nombre del usuario, su contraseña y la máquina

desde la que se realiza la conexión (localhost si es la propia máquina donde reside el

servidor, que es lo habitual en el acceso desde la Web)

Instalación y configuración de MySQL. 6: MySQL-PHP

En PHP 5 no se instala por defecto la extensión para el acceso a bases de datos

MySQL y hay que hacerlo manualmente

Se hace de la siguiente manera:

Editar el fichero php.ini y habilitar la extensión:

extension=php_mysql.dll

Añadir la ruta c:\php al PATH del sistema (ver las instrucciones parahacerlo en el fichero install.txt que hay en la carpeta c:\php)

Características de MySQL

Modelo relacional, multiusuario 

Tipos de datos

Numéricos

tinyint, smallint, mediumint, int, integer, bigint

decimal, float, numeric

Fecha y hora

date, time, datetime, year, timestamp

Cadenachar, varchar

tinytext, text, mediumtext, longtext

tinyblob, blob, mediumblob, longblob

enum, set

Debe elegirse adecuadamente el tipo y el tamaño de cada campo

Operadores

Aritméticos

+, -, *, /

Comparación

=, !=, <=, <, >=, >, IS NULL, IS NOT NULL

Lógicos

not (!), and (&&), or (||), xor

Funciones

Funciones de cadena

Funciones de comparación de cadenas

Funciones numéricas

Funciones de fecha y hora

Funciones de agregado

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 25/29

 

phpMyAdmin es una herramienta para la administración del servidor de bases de datos MySQL

Dispone de una interfaz gráfica y es de libre distribución

Permite realizar todo tipo de operaciones sobre bases de datos:

crear, borrar y modificar tablas

consultar, insertar, modificar y eliminar datos

definir usuarios y asignar permisos

realizar copias de seguridad

etc

Está escrita en php y se ejecuta desde el navegador

Si está instalada en la carpeta phpmyadmin, se ejecuta escribiendo en la barra de direcciones del

navegador la url

http://localhost/phpmyadmin/

Puede administrar bases de datos locales y remotas

phpMyAdmin

Pasos para su instalación:

DescargarDescomprimir

Configurar

Ejecutar

phpMyAdmin

Instalación y configuración de phpMyAdmin. 1: descargar Conectarse a la dirección http://www.phpmyadmin.net

Seleccionar Download 

Seleccionar la versión más reciente. A fecha de febrero de 2009 es la 3.1.2

Instalación y configuración de phpMyAdmin. 2: descomprimir 

Descomprimir debajo de la carpeta raíz de la webCambiar el nombre de la carpeta creada a phpmyadmin

Instalación y configuración de phpMyAdmin. 3: configurar El fichero de configuración se llama config.inc.php

Este fichero no existe sino que hay que crearlo. Para ello se hace una copia del fichero

config.sample.inc.php, situado en la carpeta donde se haya instalado phpMyAdmin, y

se le pone como nombre config.inc.php

Seguidamente se modifica el fichero config.inc.php

Configuración típica para un servidor local:

...

$cfg['Servers'][$i]['host'] = 'localhost'; //MySQL hostname$cfg['Servers'][$i]['user'] = 'root'; //MySQL user

$cfg['Servers'][$i]['password'] = 'clave'; //MySQL password

...

siendo ‘clave’ la contraseña asignada al administrador (root) de MySQL durante su

instalación

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 26/29

 

Instalación y configuración de phpMyAdmin. 4: ejecutar Ejecutar Apache

Abrir el navegador y teclear la url http://localhost/phpmyadmin

Lenguaje SQL

SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de

datos

Procedimiento de comunicación con la base de datos:

Lenguaje SQL

Las instrucciones más habituales son SELECT, INSERT, UPDATE, DELETE

Veamos su sintaxis básica y algunos ejemplos de uso

Para ello utilizaremos una tabla noticias con cinco campos: un identificador único de la noticia, el

título de la noticia, el texto de la noticia, la categoría de la noticia y la fecha de publicación de la

noticia

Lenguaje SQL

SELECT

Lenguaje SQL

INSERT

Lenguaje SQLUPDATE

Lenguaje SQL

DELETE

Funciones de PHP para el acceso a bases de datos MySQL

Los pasos para acceder desde PHP a una base de datos son los siguientes:

Conectar con el servidor de bases de datos

Seleccionar una base de datos

Enviar la instrucción SQL a la base de datos

Obtener y procesar los resultados

Cerrar la conexión con el servidor de bases de datos

Acceso a bases de datos MySQLLas funciones concretas de MySQL que realizan estas operaciones son:

Conectar con el servidor de bases de datos:

mysql_connect()

Seleccionar una base de datos:

mysql_select_db()

Enviar la instrucción SQL a la base de datos:

mysql_query()

Obtener y procesar los resultados:

mysql_num_rows() y mysql_fetch_array()

Cerrar la conexión con el servidor de bases de datos:

mysql_close()

Acceso a bases de datos MySQL

Conectar con el servidor de bases de datos: mysql_connect()

Devuelve un identificador de la conexión en caso de éxito y false en caso contrario

Sintaxis:

$conexion = mysql_connect (servidor, username, password);

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 27/29

 

Ejemplo:

$conexion = mysql_connect (“localhost”, “cursophp”, “”) 

or die (“No se puede conectar con el servidor”); 

$conexion = mysql_connect (“localhost”, “cursophp-ad”, “php.hph”) 

or die (“No se puede conectar con el servidor”); 

Acceso a bases de datos MySQL

Seleccionar una base de datos: mysql_select_db()

Devuelve true en caso de éxito y false en caso contrario

Sintaxis:

mysql_select_db (database);

Ejemplo:

mysql_select_db (“lindavista”) 

or die (“No se puede seleccionar la base de datos”);  Acceso a bases de datos MySQL

Enviar la instrucción SQL a la base de datos: mysql_query()

Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se

ejecuta correctamente y false en caso contrario

Sintaxis:

$consulta = mysql_query (instrucción, $conexion);

Ejemplo:

$consulta = mysql_query (“select * from noticias”, $conexion) 

or die (“Fallo en la consulta”); 

Acceso a bases de datos MySQL

Obtener y procesar los resultados: mysql_num_rows(), mysql_fetch_array()

En el caso de que la instrucción enviada produzca unos resultados, mysql_query()

devuelve las filas de la tabla afectadas por la instrucción

mysql_num_rows() devuelve el número de filas afectadas

Para obtener las distintas filas del resultado se utiliza la función mysql_fetch_array(),

que obtiene una fila del resultado en un array asociativo cada vez que se invoca

Sintaxis:

$nfilas = mysql_num_rows ($consulta);

$fila = mysql_fetch_array ($consulta);

Acceso a bases de datos MySQL

Ejemplo:

Acceso a bases de datos MySQL

Ejemplo:

Acceso a bases de datos MySQL

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 28/29

 

Obtención de las filas:

$nfilas = mysql_num_rows ($consulta);

if ($nfilas > 0)

{

for ($i=0; $i<$nfilas; $i++)

{

$fila = mysql_fetch_array ($consulta); 

 procesar fila i-ésima de los resultados 

}

}

Acceso a bases de datos MySQL

Obtener los resultados: mysql_num_rows(), mysql_fetch_array() 

Para acceder a un campo determinado de una fila se usa la siguiente sintaxis:

$fila[“nombre_campo”] // por ser un array asociativo

$fila[$i] // $i=índice del campo desde 0

Ejemplo:

for ($i=0; $i<$nfilas; $i++)

{

$fila = mysql_fetch_array ($consulta);

print “Título: “ . $fila[“titulo”]; 

print “Fecha: “ . $fila[“fecha”]; 

}

Acceso a bases de datos MySQL

Cerrar la conexión con el servidor de bases de datos: mysql_close()

Sintaxis:

mysql_close ($conexion);

Ejemplo

mysql_close ($conexion);

Ejercicios

5/10/2018 Investigaci n de PHP - slidepdf.com

http://slidepdf.com/reader/full/investigacion-de-php 29/29

 

BIBLIOGRAFIA

http://www.php.net/manual/es/control-structures.while.php  


Recommended