Investigación de PHP
-
Upload
andres-gonzalez -
Category
Documents
-
view
27 -
download
0
Transcript of Investigación de PHP
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