Introducción A PHP
Introducción A PHP
A LA WEB I
Página Página
HTML HTML
internet
<P>Hola, Ana</P>
Introducción a PHP
• ¿Cómo funciona PHP? (2)
<?PHP
$nombre = "Ana";
print ("<P>Hola, $nombre</P>");
?>
<P>Hola, Ana</P>
Introducción a PHP
• Breve historia de PHP
• Creado por Rasmus Lerdorf para uso personal en 1994
• PHP = PHP: Hypertext Preprocessor
• Versión actual: PHP 7
• Es un módulo que se añade al servidor web y fue concebido
inicialmente para Apache
• ¿Por qué PHP?
• Por sus ventajas: es potente, fácil de aprender, de libre
distribución, permite el acceso a bases de datos y otras
funcionalidades orientadas a la red
• Dispone de abundante soporte en la Web
Introducción a PHP
• Requisitos
• Servidor web Apache (www.apache.org)
• con el módulo PHP (www.php.net)
• y la base de datos MySQL (www.mysql.com) si se desea crear
páginas dinámicas
• Otras utilidades
• Herramientas para la gestión de MySQL, como PHPMyAdmin
(www.phpmyadmin.net)
• Editores de PHP, como DevPHP (www.sourceforge.net), Eclipse
(www.eclipse.org) o Aptana Studio (www.aptana.com)
• Manuales de PHP y MySQL
Sintaxis básica
• PHP es sensible a las mayúsculas
• ¿Cómo se incrusta en la página web?
<?php ... ?>
recomendado, siempre disponible
<?= expresión ?>
equivale a <? echo expresión ?>
• Las instrucciones se separan con un ; como en C. La marca final ?>
implica un ;
• Comentarios: como en C, /* … */ (varias líneas ) y // (una línea)
/* Comentario de
varias líneas */
print “hola”; // Comentario de una línea
Sintaxis básica
• Para imprimir: echo y print
<HTML>
<HEAD>
<TITLE>Mi primer programa en PHP</TITLE>
</HEAD>
<BODY>
<?php
print (“<P>Hola mundo</P>”);
?>
</BODY>
</HTML>
Sintaxis básica
• Se puede generar código HTML
Salida Párrafo 1
Párrafo 2
Sintaxis básica
• Inclusión de ficheros externos:
• include()
• require()
• Ambos incluyen y evalúan el fichero especificado
• Diferencia: en caso de error, include() produce un warning y require()
un error fatal
• Se usará require() si al producirse un error debe interrumpirse la carga
de la página
• Ejemplo:
Sintaxis básica
// menu.php
<?php
echo '<a href="ejemplo0.php">Home</a> -
<a href="ejemplo0.php">HTML Tutorial</a> -
<a href="ejemplo0.php">CSS Tutorial</a> -
<a href="ejemplo0.php">JavaScript Tutorial</a> -
<a href="ejemplo0.php">PHP Tutorial</a>';
?>
<html>
<body>
<div class="menu">
<?php include 'menu.php'; ?>
</div>
<h1>Bienvenido a mi sitio</h1>
<p>Párrafo 1</p>
<p>Párrafo 2</p>
</body>
</html>
Tipos de datos
• PHP soporta 8 tipos de datos primitivos:
• Tipos escalares: boolean, integer, double, string
• Tipos compuestos: array, object
• Tipos especiales: resource, NULL
• El tipo de una variable no se suele especificar. Se decide en tiempo de
ejecución en función del contexto y puede variar
• Funciones de interés:
• La función gettype() devuelve el tipo de una variable
• Las funciones is_type comprueban si una variable es de un tipo dado:
is_array(), is_bool(), is_float(), is_integer(), is_null(),
is_numeric(), is_object(), is_resource(), is_scalar(),
is_string()
• La función var_dump() muestra el tipo y el valor de una variable. Es
especialmente interesante con los arrays
Tipos de datos
• Tipo integer (números enteros)
• 27, -5, 0
• Tipo double (números reales)
• 1.234, -5.33
• Tipo boolean (lógico)
• Valores: true, false (insensibles a las mayúsculas)
• El 0 y la cadena vacía tienen valor false
Tipos de datos
• Tipo string:
• Las cadenas se encierran entre comillas simples o dobles:
• ‘simples’: admite los caracteres de escape \’ (comilla simple) y \\
(barra).
• “dobles”: admite más caracteres de escape, como \n, \r, \t, \\, \$, \”.
• Ejemplos:
$a = 9;
print ‘a vale $a\n’;
// muestra a vale $a\n
print “a vale $a\n”;
// muestra a vale 9 y avanza una línea
print “<IMG SRC=‘logo.gif’>”;
// muestra <IMG SRC=‘logo.gif’>
print “<IMG SRC=\”logo.gif\”>”;
// muestra <IMG SRC=“logo.gif”>
• Acceso a un carácter de la cadena:
• La forma es $inicial = $nombre{0};
Variables
• Las variables siempre van precedidas de un $
• El nombre es sensible a las mayúsculas
• Comienzan por letra o subrayado, seguido de letras, números o
subrayado
• Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,
$_ENV, $_REQUEST, $_SESSION
• Ámbito: globales al fichero (excepto funciones) o locales a una función
• Ejemplo:
$valor = 5;
print “El valor es: “ . $valor . “\n”;
print “El valor es: $valor\n”; // ojo: comillas dobles
Resultado:
El valor es: 5
Variables
• Variables variables
• Se pueden crear nombres de variables dinámicamente
• La variable variable toma su nombre del valor de otra variable
previamente declarada
• Ejemplo:
$a = "hola";
$$a = "mundo";
Resultado:
hola mundo
hola mundo
Variables
Ejemplo de variables variables: página internacionalizada (1)
<?PHP
$mensaje_es="Hola";
$mensaje_en="Hello";
$idioma = "es";
$mensaje = "mensaje_" . $idioma;
print $$mensaje;
?>
Variables
Ejemplo de variables variables: página internacionalizada (2)
<?PHP
$mensaje_es="Hola";
$mensaje_en="Hello";
$idioma = "en";
$mensaje = "mensaje_" . $idioma;
print $$mensaje;
?>
Constantes
• Definición de constantes:
define (“CONSTANTE”, “hola”);
print CONSTANTE;
• No llevan $ delante
++, --
*, /, %
+,-
<, <=, >, >=
==, !=
&&
||
and
or
Estructuras de control
• Estructuras selectivas:
• if-else
• switch
• Estructuras repetitivas:
• while
• for
• foreach
Estructuras de control
• Estructura selectiva if-else
if (condición) if (condición1)
sentencia sentencia 1
else if (condición2)
sentencia 2
if (condición)
...
sentencia 1
else if (condición n)
else
sentencia n
sentencia 2
else
sentencia n+1
<?PHP
if ($sexo == ‘M’)
$saludo = "Bienvenida, ";
else
$saludo = "Bienvenido, ";
$saludo = $saludo . $nombre;
print $saludo;
?>
Estructuras de control
• Estructura selectiva switch
switch (expresión)
{
case valor_1:
sentencia 1
break;
case valor_2:
sentencia 2
break;
…
case valor_n:
sentencia n
break;
default:
sentencia n+1
}
• Mismo comportamiento que en C, sólo que la expresión del case puede
ser integer, float o string
Estructuras de control
• Ejemplo de estructura selectiva switch:
switch ($extension)
{
case ("PDF"):
$tipo = "Documento Adobe PDF";
break;
case ("TXT"):
$tipo = "Documento de texto";
break;
case ("HTML"):
case ("HTM"):
$tipo = "Documento HTML";
break;
default:
$tipo = "Archivo " . $extension;
}
print ($tipo);
Estructuras de control
• Estructura repetitiva while
sentencia
Estructuras de control
• Ejemplo de estructura repetitiva while:
<?PHP
print ("<UL>\n");
$i=1;
while ($i <= 5)
{
print ("<LI>Elemento $i</LI>\n");
$i++;
}
print ("</UL>\n");
?>
Estructuras de control
• Estructura repetitiva for
condición
falsa cierta
sentencia
incremento
Estructuras de control
• Ejemplo de estructura repetitiva for:
<?PHP
print ("<UL>\n");
for ($i=1; $i<=5; $i++)
print ("<LI>Elemento $i</LI>\n");
print ("</UL>\n");
?>
Estructuras de control
• Ejemplo de estructura repetitiva foreach:
<?PHP
$colors = array("red", "green", "blue",
"yellow");
<?php
$a=1;
$b=2;
$c=suma ($a, $b);
print $c;
?>
Funciones
• Por defecto los parámetros se pasan por valor
• Paso por referencia:
$a=1;
incrementa ($a);
print $a; // Muestra un 2
Funciones
• Argumentos por defecto
function muestranombre ($titulo = "Sr.")
{
print "Estimado $titulo:\n";
}
muestranombre ();
muestranombre ("Prof.");
• Salida:
Estimado Sr.:
Estimado Prof.:
Funciones
• Los argumentos con valores por defecto deben ser siempre los últimos:
• Salida: