Documentos de Académico
Documentos de Profesional
Documentos de Cultura
io
21-27 minutos
Programacin PHP
PHP es un lenguaje diseado para crear contenido HTML. PHP puede ser ejecutado de tres formas:
en un servidor web, a travs de la lnea de comandos, o mediante un cliente GUI.
Una pgina PHP generalmente consiste de una pgina HTML con comandos PHP incrustados en
ella. El servidor web procesa los comandos PHP y enva la salida al visualizador (browser). Un
ejemplo de una pgina PHP sencilla sera la siguiente:
Una pgina PHP generalmente consiste de una pgina HTML con comandos PHP incrustados en
ella. El servidor web procesa los comandos PHP y enva la salida al visualizador (browser). Un
ejemplo de una pgina PHP sencilla sera la siguiente:
<html>
<body>
</body>
</html>
El comando echo de PHP produce la salida que se inserta en la pgina HTML. Note que el cdigo
PHP se escribe dentro de los delimitadores <?php y ?>.
Las instrucciones se separan con ;, en el caso de ser la ltima instruccin no es necesario el punto
y coma.
Otro tipo de comentario de una lnea es #, que comentar la lnea en la que aparezca pero slo
hasta el tag ?> que cierra el cdigo php.
Los tipos de cada variable en PHP no estn tan claros como en C. El intrprete asigna el tipo de una
variable segn el uso que se est haciendo de ella. Para asignar un tipo fijo a una variable se utiliza
la funcin settype(). Los tipos son:
Enteros
Flotantes
String
arreglos
Objetos
Variables variables
El siguiente ejemplo muestra la utilizacin de los tipos de datos enteros y flotantes. Los otros tipos
de datos se describen ms adelante.
<html>
<body>
<?php
#Enteros
//Flotantes o reales
$b = 1.234; $b = 1.2e3;
//Escribimos algo
?>
</body>
</html>
Las operaciones con hileras de texto son exactamente igual que en PERL. Por ejemplo, con strlen
se ve el tamao de una hilera de texto y con el punto ( . ) se concatenan hileras de texto.
<html>
<body>
<?php
$num = 9;
$num = 9;
$first = $str[0];
$last = $str[strlen($str)-1];
?>
</body>
</html>
Para hacer conversin de hileras de texto a otros tipos de datos hay que tener en cuenta una
hilera de texto se evala como un valor numrico, el valor resultante y el tipo se determinan como
sigue. La hilera de texto se evaluar como un doble si contiene cualquiera de los caracteres ., e,
o E. En caso contrario, se evaluar como un entero. El valor viene dado por la porcin inicial de la
hilera de texto. Si la hilera de texto comienza con datos de valor numrico, este ser el valor
usado. En caso contrario, el valor ser 0 (cero). Cuando la primera expresin es una hilera de texto,
el tipo de la variable depender de la segunda expresin.
<html>
<body>
<?php
?>
</body>
</html>
1.1.2. Arreglos
Los arreglos en PHP se pueden utilizar tanto como arreglos indexados (vectores) o como arreglos
asociativos (tablas hash). Para PHP, no existen ninguna diferencia arreglos indexados
unidimensionales y arreglos asociativos. Las funciones que se utilizan para crear arreglos son list()
o array() , o se puede asignar el valor de cada elemento del array de manera explcita. En el caso
de que no se especifique el ndice en un array, el elemento que se asigna se aade al final.
<html>
<body>
<?php
#forma explcita
$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
print "b[foo]=".$b["foo"]."<br>\n";
?>
</body>
</html>
Los arreglos se pueden ordenar usando las funciones asort(), arsort(), ksort(), rsort(), sort(),
uasort(), usort(), y uksort() dependiendo del tipo de ordenacin que se desee.
Se puede recorrer un array usando las funciones next() y prev(). Otra forma habitual de recorrer
un array es usando la funcin each().
Los arreglos multidimensionales son bastante simples, para cada dimensin array, se puede aadir
otro valor [clave] al final. Los indices de un array multidimensional pueden ser tanto numricos
como asociativos.
$a["foo"] = $f;
Los arreglos se declarar utilizando la instruccin array y se pueden rellenar tambin usando =>
# Ejemplo 1:
$a["color"] = "rojo";
$a["sabor"] = "dulce";
$a["forma"] = "redondeada";
$a["nombre"] = "manzana";
$a[3] = 4;
# Ejemplo 2:
$a = array(
3 => 4
);
1.1.3. Objetos
Para inicializar un objeto se utiliza el mtodo new , y para acceder a cada uno de sus mtodos se
utiliza el operador -> .
class nada {
function haz_nada () {
$miclase->haz_nada();
Una variable en PHP, define su tipo segn el contenido y el contexto en el que se utilice, es decir,
si se asigna una hilera de texto a una variable, el tipo de esa variable ser string . Si a esa misma
variable se le asigna un nmero, el tipo cambiar a entero .
Para asegurarte de que una variable es del tipo adecuado se utiliza la funcin settype() . Para
obtener el tipo de una variable se utiliza la funcin gettype() .
<html>
<body>
<?php
$foo = 10; // $foo es un entero
#Mostramos resultados
?>
</body>
</html>
1.2. Variables
En PHP las variables se representan como un signo de dlar seguido por el nombre de la variable.
El nombre de la variable es sensible a minsculas y maysculas. Las variables se asignan
normalmente por valor, pero desde PHP4, tambin se asignan por referencia usando el smbolo &
<html>
<body>
<?php
?>
</body>
</html>
Algo importante a tener en cuenta es que slo las variables con nombre pueden ser asignadas por
referencia.
En PHP cada vez que se ejecuta un script, existen variables que se crean y que nos pueden
informar del entorno en el que se est ejecutando dicho script.
Para obtener una lista de todas estas variables predefinidas se puede utilizar la funcion PHPinfo().
De todas estas variables, algunas se crean dependiendo del servidor que se est utilizando y otras
son propias de PHP.
Si se tratara de un servidor Apache, la lista de variables es:
GATEWAY_INTERFACE:
SERVER_NAME
SERVER_SOFTWARE
SERVER_PROTOCOL
REQUEST_METHOD
QUERY_STRING
DOCUMENT_ROOT
HTTP_ACCEPT
HTTP_ACCEPT_CHARSET
HTTP_ENCODING
HTTP_ACCEPT_LANGUAJE
HTTP_CONNECTION
HTTP_HOST
HTTP_REFERER
HTTP_USER_AGENT
REMOTE_ADDR
REMOTE_PORT
SCRIPT_FILENAME
SERVER_ADMIN
SERVER_PORT
SERVER_SIGNATURE
PATH_TANSLATED
SCRIPT_NAME
REQUEST_URL
argv
argc
PHP_SELF
HTTP_COOKIE_VARS
HTTP_GET_VARS
HTTP_POST_VARS
Nota: Esta lista no es exhaustiva ni pretende serlo. Simplemente es una gua de qu tipo de
variables predefinidas se puede esperar tener disponibles en un script PHP.
El mbito de una variable en PHP es exactamente igual que en C o en Perl tomando siempre en
cuenta los archivos incluidos al principio de cada programa.
La nica diferencia se encuentra en las variables globales, que tienen que ser expresamente
definidas dentro de las funciones.
<html>
<body>
<?php
$a = 1;
$b = 2;
Function Sum () {
$b = $a + $b;
Sum ();
echo $b;
?>
</body>
</html>
PHP permite un mecanismo para mantener variables con un nombre no fijo. Por ejemplo:
$a = "hola";
$$a = "mundo";
El ejemplo anterior, define dos variables, una denominada :math:`a que contiene el valor hola y
otra que se llama `hola que contiene el valor mundo
Para acceder al valor de una variable, se accede con:
Algo que se debe tener en cuenta cuando se utilizan variables, es que hay que resolver la
ambiguedad que se crea al utilizar arreglos de variables de este tipo. Por ejemplo :math:`$a[1]
provoca una ambiguedad para el intrprete, puesto que no sabe si se desea utilizar la variable
denominada a[1] o utilizar la variables :math:`a indexndola en su primer valor. Para esto se utiliza
una sintaxis especial que sera *{{$a}[1]* segn se desee una opcin u otra.
Cuando existe un formulario en HTML, inmediatamente despus de ser enviado, dentro del
mbito PHP se crean automticamente una variable por cada uno de los objetos que contiene el
formulario.
<html>
<body>
<p>
</body>
</html>
Cuando es enviado, PHP crear la variable $nombre, que contendr lo que sea que se introdujo en
el campo Nombre:: del formulario.
<html>
<body>
<?php
?>
</body>
</html>
PHP tambin maneja arreglos en el contexto de variables de formularios, pero slo en una
dimensin. Se puede, por ejemplo, agrupar juntas variables relacionadas, o usar esta caracterstica
para recuperar valores de un campo select input mltiple:
<html>
<option value="warthog">Warthog
<option value="guinness">Guinness
</select>
<input type="submit">
</form>
</body>
</html>
<html>
<body>
<?php
?>
</body>
</html>
1.3. Constantes
Las constantes en PHP tienen que ser definidas por la funcin `define()
<php_manual_es.html#function.define>`__ y adems no pueden ser redefinidas con otro valor.
TRUE: Verdadero.
FALSE: Falso.
Todas las constantes que empiezan por E_se utilizan normalmente con la funcin
error_reporting().
<html>
<body>
<?php
echo CONSTANTE;
?>
</body>
</html>
En PHP una expresin es cualquier cosa que pueda contener un valor. Las expresiones ms simples
son las variables y las constantes y otras ms complicadas sern las funciones, puesto que cada
funcin devuelve un valor al ser invocada, es decir, contiene un valor, por lo tanto, es una
expresin.
Todas las expresiones en PHP son exactamente igual que en C. Los operadores abreviados, los
incrementos, etc, son exactamente iguales. Incluso existen otros operadores adicionales como el
operador . que concatena valores de variables, o el operador === denominado operador de
identidad que devolver verdadero si las expresiones a ambos lados del operador contienen el
mismo valor y a la vez son del mismo tipo. Por ltimo, el operador @ sirve para el control de
errores. Para poder ver como funciona el operador @, veamos un ejemplo:
<?php
?>
PHP mantiene tambin los operadores que sirven para ejecutar un comando del sistema tal y
como hace la funcin `system() <php_manual_es.html#function.system>`__.
En PHP existen dos operadores and y dos operadores or que son: and, && y or, ||
respectivamente, que se diferencian en la precedencia de cada uno.
La tabla que nos puede resumir la precedencia de cada uno de los operadores es:
Asocitividad Operadores
Izquierda ,
Izquierda or
Izquierda xor
Izquierda and
Derecha print
Izquierda ?:
Izquierda ||
Izquierda &&
Izquierda |
Izquierda ^
Izquierda &
No posee == != ===
Izquierda
Izquierda */%
Derecha [
No posee new
<html>
<body>
<?php
function double($i) {
return $i*2;
$d y a $e */
#Operador de ejecucin
echo "<pre>$output</pre><br>";
echo "<h3>Postincremento</h3>";
$a = 5;
echo "<h3>Preincremento</h3>";
$a = 5;
echo "<h3>Postdecremento</h3>";
$a = 5;
echo "<h3>Predecremento</h3>";
$a = 5;
?>
</body>
</html>
<html>
<body>
<?php
$a=8;
$b=6;
// Primer if
$b = $a;
// if alternativo
endif;
// Segundo if (con else y elseif )
} else {
// Segundo if alternativo
print "...";
print "!!!";
else:
endif;
?>
</body>
</html>
La mejor forma de resumir cada una de las opciones que ofrece PHP para las estructuras de
control es mediante una tabla:
Estructura Alternativa
do.. while
continue
break
La instruccin require() se sustituye a s misma con el archivo especificado, tal y como funciona la
directiva #include de C. La instruccin include() incluye y evala el archivo especificado.
A diferencia de include(), require() siempre leer el archivo referenciado, incluso si la lnea en que
est no se ejecuta nunca. Si se quiere incluir condicionalmente un archivo, se usa include(). La
instruccin conditional no afecta a require(). No obstante, si la lnea en la cual aparece el require()
no se ejecuta, tampoco se ejecutar el cdigo del archivo referenciado.
De forma similar, las estructuras de ciclo no afectan la conducta de require().. Aunque el cdigo
contenido en el archivo referenciado est todava sujeto al ciclo, el propio require() slo ocurre
una vez. Esto significa que no se puede poner una instruccin require() dentro de una estructura
de ciclo y esperar que incluya el contenido de un archivo distinto en cada iteracin. Para hacer
esto, usa una instruccin include(). As, require, reemplaza su llamada por el contenido del fichero
que requiere, e include, incluye y evalua el fichero especificado.
<?php
?>
El archivo que realiza la inclusin del primero sera algo similar a esto:
<html>
<body>
</body>
</html>
1.6. Funciones
Dentro de una funcin puede aparecer cualquier cosa, incluso otra funcin o definiciones de clase.
Respecto al paso de argumentos, son siempre pasados por valor y para pasarlos por referencia hay
que indicarlo y se puede hacer de dos formas diferentes, en la definicin de la funcin,
anteponiendo el smbolo & al argumento que corresponda, en este caso la llamada ser igual que
la llamada a una funcin normal, o manteniendo la definicin de la funcin normal y anteponer un
& delante del argumento que corresponda en la llamada a la funcin.
<html>
<body>
<?php
$c=$a+$b;
return $c;
$c=$a+$b;
return $c;
print $suma=suma1($a,$b);
print $suma=suma1(&$a,&$b);
print $suma=suma1($a,$b);
?>
</body>
</html>
PHP permite el mecanismo de argumentos por defecto. Un ejemplo de esta caracteristica es:
function hacerCafe($tipo="capuchino") {
}
En la llamada a esta funcin se obtendr una frase u otra segn se llame:
echo hacerCafe();
echo hacerCafe("expreso");
En el caso de tratarse de una funcin con argumentos por defecto y argumentos normales, los
argumentos por defecto debern estar agrupados al final de la lista de argumentos.
En PHP4 el nmero de argumentos de una funcin definida por el usuario, puede ser variable, se
utilizan las funciones func_num_args(), func_get_arg() y func_get_args().
A diferencia de C, PHP puede devolver cualquier nmero de valores, slo har falta recibir estos
argumentos de la forma adecuada. Ejemplo:
function numeros() {
return array(0,1,2);
PHP soporta el concepto de funciones variable, esto significa que si una variable tiene unos
parntesis aadidos al final, PHP buscar una funcin con el mismo nombre que la evaluacin de
la variable, e intentar ejecutarla.
<?php
function foo() {
$func = 'foo';
$func();
$func='bar';
$func('test');
?>