EL LENGUAJE PHP.
1. Lenguajes de programación en el diseño web
Las páginas web, como hemos comentado anteriormente, pueden ser estáticas y
dinámicas.
Páginas estáticas: el contenido es estático. Para su desarrollo se usa HTML y CSS.
Páginas dinámicas: el contenido no es estático. Para su desarrollo se utiliza HTML,
CSS, JavaScript y PHP. Además, se pueden usar gestores de contenidos.
1.1.Tipos de Lenguaje según donde se ejecuten (servidor/cliente):
Algunos ejemplos de tipos de lenguajes se muestran en la tabla siguiente:
Ejecución del lado del cliente Ejecución del lado del servidor
HTML PHP
Javascript ASP
VBScript JSP
Tabla de ejemplos de ambos tipos de lenguajes
En este módulo nos centraremos en el lenguaje PHP. Es un lenguaje que pertenece al
grupo de los denominados lenguajes del lado del servidor, frente a los lenguajes del
lado del cliente.
Mientras que los lenguajes del lado del cliente se ejecutan de forma local en cada
uno de los clientes, los pertenecientes al lado del servidor siguen la secuencia de pasos
que se menciona a continuación y que se detalla en la figura 1.2:
El navegador realiza la petición de la página web.
El servidor comprueba si dicha página contiene algún tipo de script interpretable.
En caso afirmativo llama al intérprete adecuado (PHP en nuestro caso) y ejecuta
dicho script.
El resultado de dicha ejecución se anexa al resto de la página web y se devuelve al
cliente.
Por último, el documento es interpretado por el navegador del cliente y en el caso
de que haya scripts a ejecutar del lado del cliente se lleva a cabo esta acción y se
muestra el resultado final al cliente.
Nota: el servidor al llamar al intérprete lo que hace es realizar una petición a un motor
o programa para que interprete el código.
1
2
2. El lenguaje PHP
El lenguaje PHP es un lenguaje muy popular y utilizado. Algunas de sus características
son:
Interpretado en contraposición a los lenguajes "compilados": es decir, el programa
es ejecutado línea a línea.
Se ejecuta en el servidor y no en el cliente. La respuesta que genera el servidor es
enviada al navegador del usuario como una página web. Por tanto, al usuario nunca
se le proporcionará el código php del programa, sino que únicamente le llegará la
respuesta de la ejecución del programa php.
"Incrustado" (o embebido) en HTML: el código del programa se entremezcla con el
código habitual de una página escrita en lenguaje HTML.
Multiplataforma: es soportado en numerosas plataformas y sistemas operativos muy
diferentes entre sí: gnuLinEx, Linux, UNIX, MacOSX, Windows, ...
Código abierto (u Open Source): junto con servidores (Apache, Tomcat...) y sistemas
gestores de base de datos también open source componen un entorno web
totalmente libre y gratuito.
2.1.Entorno web para trabajar
Para trabajar en un entorno web es necesario instalar (manualmente o mediante
instaladores integrados):
Un servidor web: Apache
Un lenguaje de programación web: PHP
Un sistema gestor de base de datos: MySQL
En Windows utilizaremos el paquete integrado XAMPP.
XAMPP incluye el servidor web Apache, el servidor de base de datos MySQL, su
respectivo gestor phpMyAdmin, el intérprete del lenguaje y servidores de FTP como
FileZilla.
Existen versiones para Linux, Windows, MacOS X y Solaris, cuyos paquetes difieren
según la disponibilidad de los diversos programas en cada plataforma.
3
2.2. Archivos de configuración a tener en cuenta
El archivo de configuración fundamental de apache se denomina httpd.conf y se
encuentra en la ruta /etc/apache, mientras que el principal archivo de configuración de
PHP se llama php.ini y se encuentra en /etc/php4/apache/php.ini.
En nuestro caso, que hemos instalado XAMMP: C:\xammp\apache\conf\httpd.conf y
C:\xammp\php\php.ini
3. Primeros pasos con PHP
Algunas consideraciones a tener en cuenta:
Todos los archivos que contengan código php deberán tener la extensión .php
Para ver la página web resultante, desde el navegador se deberá indicar la dirección:
http://localhost/archivo.php. Donde archivo.php es el nombre del archivo que
contiene el código php que se desea ejecutar. Con esto conseguimos que la página
web pase antes por el servidor web Apache.
El código de los programas PHP se escribe dentro de una página HTML y el
resultado de su ejecución la muestra el navegador.
PHP distingue entre mayúsculas y minúsculas en algunos casos como en los
nombres de variable. Sin embargo, con las palabras reservadas no es estricto (while,
WHILE y While son sinónimos).
Las sentencias deben finalizar con un punto y coma. Este carácter indicará al
intérprete que a continuación comienza una nueva sentencia PHP.
3.1. Delimitadores
Para delimitar el código PHP usaremos:
<?php
.........;
?>
El código PHP se incluye entre etiquetas especiales de comienzo (<?php) y final (?> ),
que nos permitirán entrar y salir del modo PHP.
En la última instrucción se puede omitir el punto y coma, pues considera el delimitador
?> como fin de programa. No obstante, es aconsejable poner el punto y como también
en está instrucción.
3.2. Salida por pantalla
Las funciones fundamentales de escritura son echo y print.
echo es una de las órdenes más usadas en PHP. Permite mostrar datos en pantalla.
Tras echo se pasa una o más expresiones, siendo necesario escribirlas entre
comillas cuando son literales. Si se usa más de un texto, se separan con comas:
4
Ejemplo1echo
<?php
echo "hola ";
echo "hola "," adios";
echo "<br>" . "hola " . " " . "adios"."<br>"; //Concatena varias cosas
print "Hola mundo"."<br>";
print "Hola mundo"
?>
En la última instrucción no hemos puesto ; (punto y coma) aunque es recomendable
en todas las líneas.
print. funciona casi igual, pero tiene dos importantes diferencias:
Devuelve un valor verdadero o falso dependiendo de si se pudo escribir el texto
o no (en código complejo es muy útil)
No admite varios textos, sólo uno. Aunque se le puede encadenar con el
operador punto (.)
3.3. Inclusión de etiquetas HTML en el código PHP
Tal y como se ha descrito, la ejecución de un programa php devuelve una página web
con el resultado de la ejecución. A la página web podrá darse formato HTML. Para
entenderlo mejor, el siguiente ejemplo muestra un ejercicio con etiquetas HTML dentro
del código PHP.
En el lenguaje PHP sólo se incluirán aquellas etiquetas que sean
estrictamente necesarias.
5
3.4. Inclusión de etiquetas PHP en el código HTML
Para introducir código php en una página HTML, es necesario colocar el código php
entre las etiquetas especiales de comienzo (<?php) y final (?> ), tal y como muestra el
siguiente ejemplo:
El archivo que contiene este código deberá ser guardado con el formato php (.php), ya
que contiene instrucciones en este lenguaje. La ejecución de este programa devuelve
una página web con el código HTML que contenga, y el resultado de la ejecución del
código php.
Ejercicio. Modificar el ejemplo 1, de forma que se utilicen estilos para dar
formato a la página.
3.5. Comentarios
Los comentarios nos permiten hacer ciertas aclaraciones en el código, para que así
resulte más fácil de entender. En PHP hay dos formas de introducir comentarios en el
código:
Comentarios de varias líneas: /* .... */
Comentarios hasta el final de la línea: // ....
6
4. Iniciación a la programación en PHP
4.1. Variables
Una variable es una zona de memoria donde se guarda información que es usada
en el programa. El nombre de la variable es utilizado para acceder a esa zona de
memoria. Se deben tener en cuenta una serie de cuestiones a la hora de poner nombre
a una variable:
Al contrario que en la mayoría de los lenguajes de programación, en PHP no hace
falta declarar las variables antes de usarlas, basta con asignarles un valor y ya se
pueden usar a lo largo de todo el programa. Tampoco es necesario indicar el tipo de
variables, una misma variable puede contener diferentes tipos de datos a lo largo de
un programa.
En PHP todas las variables comienzan con el signo dólar $ seguido del nombre
de la variable. Después debe ir una letra o guion bajo ( _ ).
El nombre de la variable no puede tener espacios.
Los nombres de variables son sensibles a mayúsculas y minúsculas.
Si el valor que deseamos guardar en la variable es un texto debe ir entre comillas.
Algunos ejemplos de variables son:
$apellido
$_Contador
$precio_2012
A la hora de trabajar con variables es necesario asignarles un valor para trabajar con
ellas. Dicha asignación se realiza simplemente escribiendo un símbolo = entre el
nombre de la variable y el valor que le queramos dar.
Tenemos una función llamado isset() a la que se le pasa un variable e indica si la
variable tenía asignado un valor; en cualquier otro caso devuelve falso.
7
Realizar Ejercicios iniciales variables.php
4.2. Tipos de datos
El lenguaje PHP soporta los siguientes tipos de datos básicos:
Tipo Características Ejemplo
Enteros (int, integer) Números enteros $var1 = 1234
Los números en punto flotante
Números en punto
admiten decimales y su rango de
flotante (float, $var1 = 1.234;
valores es mayor que el de los
double, real)
enteros
Un array es una colección de datos
con un mismo nombre y un índice $MiArray[0] = 1;
para acceder a cada uno de los $MiArray[1] =
Arrays (array) datos. El índice empieza en 0. “hola!!”;
Los elementos de un mismo $MiArray[2] = 5;
array pueden ser de tipos echo $MiArray[1];
distintos.
Una cadena es un conjunto de
caracteres.
$cadena="Curso"
.- Para concatenar cadenas se
Cadenas de texto $cadena=$cadena."
utiliza el operador ‘.’
(string) Web" echo
.- Se puede acceder a cada
$cadena[1]
carácter de la cadena igual que en
una array.
Práctica 0 y 1
4.3. Constantes
Las constantes son elementos de PHP que guardan un valor fijo que no se puede
modificar a lo largo del programa. Las constantes pueden ser definidas por el
programa o estar predefinidas por el propio PHP. Los nombres de las constantes siguen
8
las mismas reglas que los nombres de las variables, pero sin el dólar ($) inicial. La
costumbre es escribir los nombres de las constantes en mayúsculas.
La ventaja de usar constantes y variables es que se puede distinguir a simple vista si a
lo largo de un programa algo va a permanecer constante (si es una constante) o puede
cambiar (si es una variable).
Para definir una constante:
define(nombre_constante, valor_constante)
Las constantes en PHP cumplen una serie de normas:
No llevan el símbolo del dólar delante.
Los nombres deben empezar por una letra.
Puede accederse a ellas desde cualquier parte del código donde han sido definidas,
sin restricciones de ámbito como en las variables.
Sólo pueden contener valores escalares, no vectores.
Constantes predefinidas
El lenguaje PHP incorpora algunas constantes predefinidas. Por ejemplo:
PHP_VERSION: Muestra la versión actual de PHP
PHP_INT_MAX: es el valor del mayor entero que se puede guardar en una variable
de tipo entero.
PHP_OS: muestra el sistema operativo del servidor
4.4. Uso de cadenas
Se asignan a las variables entrecomillando (en simples o dobles) el texto a asignar.
9
Cuando el propio texto lleva comillas, se puede utilizar combinaciones de las comillas
para evitar el problema.
Como queremos almacenar en $frase el texto con Hola entre comillas, entonces
englobamos todo el texto con comillas simples.
Un hecho de PHP muy interesante es que en un texto se puede incluir el valor de una
variable. Por ejemplo:
4.5. Operadores
4.5.1. Operadores aritméticos
Dispone de los siguientes operadores aritméticos:
Operador Característica
+ Suma
- Resta
* Producto
/ División
% Resto de la división
++$a Pre-incremento. Incrementa $a en 1, y devuelve $a (ya incrementado).
Post-incremento Devuelve $a (sin incrementar), y después lo incrementa en
$a++
1.
--$a Pre-decremento. Decrementa $a en 1, y después lo devuelve.
$a-- Post-decremento. Devuelve $a, y después lo incrementa en 1.
Los operadores aritméticos tienen el mismo orden de precedencia que en Matemáticas.
El operador división (/)
Devuelve un cociente real. Si queremos que nos devuelva un cociente entero usaremos
la función intdiv()
El operador resto (%)
Los números se convierten a enteros antes de efectuar el cálculo.
10
Por ejemplo, 5% de 2.5 da como resultado 1 y no 0 porque calcula el resto de 5 entre 2,
no de 5 entre 2.5.
La función fmod calcula el resto de una división con números decimales.
4.5.2. Operadores de incremento e incremento
La diferencia entre el pre-incremento y el post-incremento es que en el primer caso
primero se incrementa la variable y después se utiliza y en el segundo primero se utiliza
y después se incrementa.
4.5.3. Operadores Lógicos
Los operadores lógicos permiten combinar expresiones simples en expresiones más
complejas. Tenemos los siguientes operadores lógicos:
11
Operador Característica
$a and $b
Operador Y. Cierto si $a y $b son ciertos.
$a && $b
$a or $b
Operador O. Cierto si $a o $b es cierto.
$a || $b
! $a Operador Negación. Cierto si $a es falso.
4.5.4. Asignación, igualdad e identidad
Operador Característica
Asignación. Asigna el valor de una variable o expresión del
$a = $b
segundo término a la variable del primer término.
Igualdad. Sirve para comparar. Devuelve true si el valor de
$a == $b
los dos operandos es el mismo.
4.5.5. Comparación
Las comparaciones permiten comparar variables o expresiones entre sí o con valores
concretos. El resultado de la comparación es un valor booleano (true o false).
Operador Característica
$a != $b No igual. Cierto si el valor de $a no es igual al de $b.
$a < $b Menor que. Cierto si $a es estrictamente menor que $b.
$a > $b Mayor que. Cierto si $a es estrictamente mayor que $b.
$a <= $b Menor o igual que. Cierto si $a es menor o igual que $b.
$a >= $b Mayor o igual que Cierto si $a es mayor o igual que $b.
Práctica2
Ejercicios iniciales nuevos: operadores.php
5. Estructuras de control
Las estructuras de control permiten bifurcar el flujo del programa y así ejecutar unas
partes u otras del código según ciertas condiciones. PHP dispone de todas las
estructuras clásicas de los lenguajes de alto nivel, con la sintaxis de C, C++ o Java.
5.1. Condicional IF
La sintaxis es:
if (expresión) {
instrucciones
} else {
instrucciones
}
12
Ejecuta unas u otras instrucciones en función de una condición.
IF IF… ELSE
Se pueden añadir tantas instrucciones elseif como se desee, teniendo en cuenta que
en cualquier caso solamente se ejecuta uno de grupos de sentencias.
if (condición_1) {
sentencias
} elseif (condición_2) {
sentencias
} elseif (condición_3) {
sentencias
...
} elseif (condición_n) {
sentencias
} else {
sentencias
}
13
5.2. Condicional switch
La sintaxis es:
La sentencia switch es similar a if ... elseif ... Se suele utilizar cuando hay muchas
condiciones.
14
5.3. Bucle while
La sintaxis es:
Hay una condición que se evalúa al
principio de cada iteración; si es verdadera
se ejecutan las instrucciones y si es falsa
se termina el bucle. El número de veces
que se ejecute el bucle depende de la
condición, pudiendo ocurrir que no se
ejecute ninguna vez.
15
5.4. Bucle do…while
La sintaxis es:
do{
sentencias;
}while(expresión);
La condición se evalúa al final de cada
iteración; si el resultado es verdadero se
ejecuta el bloque de sentencias y si
es falso el bucle se termina. Como
mínimo el bucle se ejecuta una vez.
5.5. Bucle for
La sintaxis es:
expresión1 es la inicialización del bucle. Da un
valor inicial a una variable. Sólo se ejecuta una vez,
al principio, cuando el flujo del programa llega al
bucle.
expresión2 es la condición. Mientras que
expresión2 sea cierta, el bucle estará iterando. Se
evalúa al inicio de cada iteración, y si no se verifica
la condición la siguiente iteración ya no se realiza y
finaliza el bucle, continuando la ejecución del
programa con el resto del código de después del
for.
expresión3. Se ejecuta después de cada iteración,
y normalmente modifica el valor de alguna variable
(separadas por comas si hay más de una).
Este bucle se ejecuta un número fijo de veces.
16
6. Funciones
6.1. Funciones definidas por el usuario.
Uno de los problemas habituales que se encuentra un programador es que los
programas alcanzan un tamaño considerable en cuanto a líneas de código.
Para mitigar este problema apareció la programación modular. En ella el programa se
divide en módulos de tamaño manejable. Cada módulo realiza una función muy concreta
y se pueden programar de forma independiente.
Los módulos son pequeños programas que pueden recibir datos y a partir de ellos
realizan un cálculo o una determinada tarea. Una vez el módulo es probado y validado
se puede utilizar las veces que haga falta en el programa.
En PHP la programación modular se implementa mediante funciones. Una función es,
por tanto, un bloque de código agrupado bajo un mismo nombre que realiza una tarea
concreta y que puede ser llamada siempre que se necesite en un programa.
Las funciones se crean para evitar escribir varias veces el mismo código. Deben
definirse antes de ser llamadas. Al crear una función hay que tener en cuenta una serie
de cosas:
Las funciones poseen un nombre que cumple las reglas indicadas para los demás
identificadores que conocemos (como los de las variables). Pero, a diferencia de las
variables, no utilizan el signo $. Se aconseja que el nombre de las funciones se
escriba en minúsculas. Aunque no distingue mayúsculas y minúsculas.
A las funciones se les pasa, aunque no a todas, unos valores (parámetros) que la
función necesita para hacer su labor.
Las funciones pueden devolver un valor, resultado de las operaciones realizadas.
La guía de estilo PEAR para PHP recomienda que los nombres de las funciones sigan
el estilo camelCase (es decir, sin espacios ni guiones, con la primera palabra en
minúsculas y el resto con la primera letra en mayúsculas).
La sintaxis es la siguiente:
function nombre ($arg_1, $arg_2, ..., $arg_n) {
sentencias
return $valor;
}
La sentencia return es opcional, y sirve para que la función devuelva un valor.
17
Para invocar una función desde cualquier programa escrito en PHP, basta con llamarla
por su nombre, e incluir los parámetros que ésta precise. Al ejecutarse, la función
analiza los argumentos de entrada proporcionados y los utiliza en su proceso,
posteriormente, dependiendo del tipo de función de que se trate devolverá un resultado
o no.
Las funciones pueden tratarse como expresiones, de ahí que puedan imprimirse en
pantalla directamente o asignarse a variables para almacenar en ellas el resultado de la
ejecución.
Nota: si a una función se le pasan menos parámetros de los requeridos, el intérprete de
PHP mostrará un error por pantalla. Por el contrario, si se indican más argumentos de
los necesarios, los parámetros por exceso serán ignorados.
18
Variables locales
Las variables definidas dentro del código perteneciente a una función son locales a esa
función, es decir, al finalizar la función se eliminan.
Ejemplo:
function f1(){
$h=9; }
echo $h;
La instrucción echo del ejemplo anterior, provoca un fallo de variable no definida, porque
PHP no reconoce a la variable $h, la única $h del código se crea en la función y sólo se
puede usar en la función; hacer referencia a $h fuera de la función no tiene sentido; ya
que tras el cierre de la llave en la que se definió, la variable desaparece. La variable es,
en definitiva, local a la función.
De la misma forma si se crea una variable fuera de una función (denominadas variables
globales), aunque dentro de la función se utilice una variable con el mismo nombre que
la anterior, realmente no se trata de dicha variable y, por tanto, no tendrá su valor.
Ejemplo.
$h=5;
function f1(){
$h=9;
}
echo $h; //escribe 5
Para PHP en el ejemplo anterior hay dos variables $h. Cuando se cierra la función la
que se ha definido dentro de la función (variable local) desaparece y regresa la anterior
que valía cinco.
Parámetros por valor y por referencia.
Los parámetros se pueden pasar de dos formas:
Parámetros por valor. Esta es la forma más común de trabajar con parámetros. A
la función se le pasa una copia de la variable. Los cambios que sufra la variable
dentro de la función no permanecerán fuera de ella al finalizar su ejecución.
19
Como esta función recibe el parámetro por valor, no modifica la variable original. La
función Holamundo simplemente cambia el valor del parámetro $msg; al salir de esa
función, $msg muere. Por lo que al escribir lo que vale $msg, se mostrará: “¿Cómo
estás?”, ya que el $msg de fuera de la función es diferente al parámetro.
Parámetros por referencia. En este caso si se modifica el valor de la variable dentro
de la función. Esto se consigue utilizando el símbolo ‘&’ en la definición de la función.
Cuando se hace la llamada a la función con un parámetro por referencia, es necesario
pasar una variable. En realidad, se pasa la dirección de memoria de esa variable.
6.2. Funciones predefinidas o incorporadas en el lenguaje
En PHP hay una gran cantidad de funciones que ofrece el lenguaje. Estas se pueden
consultar en https://www.php.net/manual/es/indexes.functions.php.
Especial mención requieren, por su uso frecuente, las funciones de cadenas.
20
Funciones de cadenas
Como ya hemos comentado anteriormente, una cadena, es una secuencia de
caracteres (letras, números y caracteres especiales). Para concatenar cadenas se
utiliza el punto. Hay que tener en cuenta que el primer carácter de una cadena es el que
ocupa la posición 0.
Además, el lenguaje php proporciona varias funciones para operar con cadenas.
Algunas de ellas son:
FUNCIÓN DESCRIPCIÓN
strlen(cadena) Devuelve la longitud (número de
caracteres) de la cadena.
strtolower(cadena) Convierte la cadena a minúsculas.
strtoupper(cadena) Convierte la cadena a mayúsculas.
substr(cadena,posInicial,tamaño) Devuelve una subcadena contenida
en una cadena. Se le indicará la
posición inicial y el tamaño de la
subcadena que se quiere obtener.
Si no se indica el tamaño llega hasta
el final de la cadena.
Si el valor de comienzo es negativo,
la cadena devuelta empezará
contando desde el final de la cadena.
$rest = substr("abcdef", - 1);
// devuelve "f"
strpos(cadena,CadenaBuscar,posInicial) Devuelve la posición de la primera
aparición de una cadena dentro de
otra.
Si no la encuentra devuelve false.
Si no se indica la posición inicial de
búsqueda, comienza a buscar desde
el principio (posición 0).
Hay que tener en cuenta que
distingue entre mayúsculas y
minúsculas.
stripos(cadena,CadenaBuscar) Igual que la anterior, pero no
distingue entre mayúsculas y
minúsculas.
str_replace(cadenaBuscar, Sustituye una cadena por otra. Si se
cadenaRemplazar,cadenaOriginal,numero) indica número, guarda el número de
reemplazos realizados)
21
str_repeat(cadena,veces) Repite una cadena las veces que se
le indiquen.
trim(cadena) Elimina espacios en blanco al
principio y final de la cadena.
ltrim(cadena) Eliminan los espacios del principio y
rtrim(cadena) del final respectivamente.
strrev(cadena) Devuelve la cadena invertida.
22
7. Arrays
Un array es un conjunto de elementos agrupados bajo un mismo nombre. Los elementos
pueden ser del mismo o distinto tipo. A cada uno de los elementos se accede mediante
un índice.
Hay varias formas de crear arrays en PHP:
Mediante la palabra reservada array:
$diasSemana=array("lunes", "martes", "miércoles", "jueves", ”viernes”, ”sábado”, ”domingo);
Mediante corchetes:
$notas=[4,5,6,7,8];
Asignando valor a cada uno de los elementos:
$dias[0]=”lunes”;
$dias[1]=”martes”;
$dias[2]=”miércoles”;
Una vez declarado el array podemos añadir un nuevo elemento. Se agrega al final.
Ejemplo: $notas[]=9;
23
Dentro del array podemos guardar todo tipo de datos, tanto cadenas de texto, como
números enteros o decimales, o booleanos, o poner variables que contengan esos
datos. El siguiente array mezcla todo tipo de datos:
Ejemplo.
$datos=array("Pepe",5,16.3);
$meses=[“enero”,”febrero”,”marzo”];
Los arrays anteriores son arrays indexados, es decir, a cada elemento del array le
corresponde una posición numérica. El primer elemento ocupa la posición 0 y el
último ocupa la posición n-1. Siendo n, el total de elementos del array.
0 1 2 3 4 5 6
Lunes Martes Miércoles Jueves Viernes Sábado Domingo
Acceso a un elemento del array.
Para acceder a un elemento determinado se indica la posición entre corchetes (la
primera posición es la 0).
Ejemplo:
echo $diasSemana[4];
Contar los elementos de un array
Podemos usar las siguientes funciones:
count($nombreArray);
sizeof($nombreArray);
Imprimir todos los valores de un array: la función print_r()
La función print_r($variable) permite imprimir todos los valores de una matriz de forma
estructurada.
Esta función no se suele utilizar en programas definitivos, pero puede ser útil
mientras estamos elaborando un programa, por ejemplo, para comprobar en un
punto del programa si el array contiene los valores esperados. Una vez
comprobado, la instrucción se puede comentar o borrar.
Ejemplo. Imprimir todos los valores de un array.
print_r($diasSemana);
Recorrer los elementos del array.
Para recorrer el array se utiliza un bucle for.
24
Recorrer arrays mediante el constructor foreach.
Otra forma de recorrer un array es mediante el constructor foreach. El bucle comienza
con el primer elemento del array y finaliza con el último sin necesidad de saber cuántos
elementos tiene.
Ejemplo.
<?php
echo "<br>Los colores son: ";
foreach($colores as $valor)
echo $valor." ";
?>
Cuando PHP se encuentra la declaración foreach, toma el primer elemento del array y
lo asigna a la variable seguida de la palabra clave as $valor. Cuando vuelve al inicio,
vuelve asignar a la variable $valor el siguiente elemento del array y así hasta terminar
de recorrer el array.
Si se solicita un valor no definido de un array, se produce un aviso (undefined offset).
Los avisos no interrumpen la ejecución del programa, pero se deben corregir porque el
programa seguramente no tendrá el comportamiento esperado:
Las funciones pueden recibir y devolver arrays al igual que cualquier otro tipo de
variables.
A diferencia de la mayoría de los lenguajes estructurados, en PHP los arrays se pasan
por valor a las funciones. Es decir, cuando se pasa un array a una función, ésta recibe
una copia de este. Así, las modificaciones al array que se hagan dentro de la función no
afectan al array original.
Borrar un array o elementos de un array.
La función unset() permite borrar un array o un elemento de un array. Al borrar el
elemento, los elementos que quedan no se reordenan, la posición queda vacía.
Para reordenar los elementos usamos la función array_values().
25
Ejemplo:
unset($colores[1]); //Borra el elemento de esa posición. Esa posición queda vacía
print_r($colores);
echo($colores[1]); //No existe, lanza aviso
$colores=array_values($colores); //Esta función reordena el array
print_r($colores);
unset($colores); //Borramos el array
print_r($colores); //Nos dice que no está definida la variable $colores
7.1. Arrays asociativos
Como hemos visto anteriormente, en los arrays tradicionales (indexados) se utiliza un
índice para acceder a los elementos. Existen otro tipo de arrays que son los arrays
asociativos. En estos arrays se utiliza una cadena para acceder a los elementos en
lugar de un índice.
Definir un array asociativo.
La forma de definir un array asociativo es la siguiente:
$variable=array("clave1"=>"valor1","clave2"=>"valor2","clave3"=>"valor3"...);
Leer y añadir elementos a un array.
El acceso es mediante el nombre de la clave.
$valor = $capitales[“Portugal”];
$capitales[“Belgica”] = “Bruselas”;
Si la clave a la que se asigna un valor existía previamente, su valor se sustituye por el nuevo.
Si la clave no existía, se crea una nueva entrada en el array. En nuestro ejemplo, no existía
Bélgica, por tanto, se añade ese elemento.
Vamos a escribir valores del array:
echo $capitales["Inglaterra"]; //Escribe la capital de Inglaterra. El índice va entre comillas
echo "<br>La capital de España es “. $capitales[“España”];
Para saber si existe una entrada en el array para una determinada clave, utilizamos la
función array_key_exists(clave, array):
26
Eliminar entradas de un array.
Para eliminar de un array una clave y su valor, se utiliza la función unset(array[clave]):
unset($capitales['Belgica']);
Recorrer todos los elementos de un array asociativo.
Se utiliza el constructor foreach. Tenemos diferentes formas, según lo que queramos
mostrar:
foreach($capitales as $valor)
echo "<br>Capital: ".$valor;
foreach($capitales as $pais=>$valor)
echo "<br><b> País:</b> ".$pais. " <b>Capital:</b> ".$valor;
Contar los elementos del array.
Al igual que en los arrays indexados, se utiliza la función count() o sizeof().
7.2. Arrays bidimensionales
Los elementos de los arrays pueden tener cualquier tipo de datos (enteros, cadenas,
números reales, etc.). Además, un elemento de un array puede ser otro array.
En el siguiente ejemplo, $y[2][1] vale 7.
$y=[[3,3],[3,3],[3,7],[3,3]];
$y[0]=[3,3];
$y[1]=[3,3];
$y[2]=[3,7];
$y[3]=[3,3];
27
Resumen operadores
28