Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OBJETIVOS
PROCEDIMIENTO
Arrays escalares
Los elementos de un array escalar pueden escribirse usando la siguiente sintaxis:
$a[]=valr ó $a[x]=valor
En el primero de los casos, PHP asigna automáticamente como índice el valor siguiente al último
asignado. Si es el primero que se define, le pondrá como índice 0 (CERO). En el segundo de los
casos, seremos nosotros quienes pongamos (xx) el número correspondiente al valor del índice.
Si al índice ya se le hubiera asignado un valor, cambiará el valor de la variable, en caso contrario
creará un nuevo elemento del array.
Arrays asociativos
Los elementos de un array asociativo pueden escribirse usando la siguiente sintaxis:
$a["indice"]=valor
En este caso, el índice será una cadena y se escribirá entre comillas.
Arrays bidimensionales
Un array bidimensional recoge valores de una tabla de doble entrada. Cada uno de los elementos
se identifica y se asigna mediante una variable ($nombre) seguida de dos ([ ]) que contienen los
índices del array.
Los índices pueden ser escalares -equivaldrían al número de fila y columna que la celda
ocuparía en la tabla, o puede ser asociativo que equivaldría en alguna medida a usar como
índices los nombres de la fila y de la columna.
Arrays escalares
Los elementos de un array bidimensional escalar puede escribirse usando la siguiente sintaxis:
En el primero de los casos, PHP asigna automáticamente como primer índice el valor siguiente al
último asignado a ese mismo índice. Si es el primero que se define, le pondrá como índice 0
(CERO). Con la sintaxis del primer supuesto, al segundo índice le asignará cero ya que es en este
mismo momento cuando se habrá creado el primer índice y por tanto aún carecerá de elementos.
En el segundo de los casos, si somos nosotros quienes asignamos valor al primer índice (xx) será
el segundo quien se incremente en una unidad respecto al de valor más alto de todos aquellos
cuyo primer índice coincide con el especificado.
La tercera opción es similar a la anterior y en la cuarta se pueden asignar libremente cada uno de
los índices (xx e yy) poniendo valores numéricos.
Arrays asociativos
Los elementos de un array asociativo BIDIMIENSIONAL puede escribirse usando la siguiente
sintaxis:
$a["indice1"]["indice2"]=valor
En este caso, los índices serán cadenas y se escribirán entre comillas.
Arrays multidimensionales
PHP permite el uso de arrays de dimensiones superiores a dos. Bastaría con añadir corchetes para
modificar la dimensión del array.
$a[x][y][z]=valor;
Asignar a un valor al elemento de índices x, y y z de un array tridimensional y
$a[x][y][z][w]=valor;
$a= array (
indice 0 => valor,
..... ,
indice n => valor,
);
Por ejemplo:
$z=array (
0 => 2,
1 => "Pepe",
2 => 34.7,
);
$z[0]=2;
$z[1]="Pepe";
$z[2]=34.7;
Anidando en array();
La función array() permite escribir arrays de cualquier dimensión utilizando la técnica de anidado.
Si pretendemos escribir los elementos de este array:
$z[0][0]=34;
$z[0][1]=35;
$z[0][2]=36;
$z[1][0]=134;
$z[1][1]=135;
$z[1][2]=136;
$z=array(
0 => array (
0 => 34,
1 => 35,
2 => 36
),
1 => array (
0 => 134,
1 => 135,
2 => 136
)
);
Como puede observarse se trata de sustituir los valores asignados a los elementos de una primera
función array() por otra nueva función array que contiene los segundos índices así como los
valores asignados a los mismos.
El anidado sucesivo permitiría generar una matriz de cualquier dimensión.
Aunque en el ejemplo anterior nos hemos referido a un array escalar idéntico procedimiento
sería válido para arrays asociativos sin más que cambiar los índices por cadenas escritas entre
comillas.
Foreach
El bucle foreach permite el recorrido de elementos complejos como las matrices de una forma
sencilla. La sentencia foreach permite directamente recorrer cada uno de los elementos y
asignarles un nombre que sea más sencillo de procesar.
Como verán es más óptimo en este caso usar foreach que el simple For.
La sentencia Foreach admite otra sintaxis para permitir recorres arrays asociativos y recuperar
simultáneamente la clave y el valor de cada elemento.
El funcionamiento de esta función se basa en el hecho de que cada vez que se recupera el
siguiente para, se introduce el valor en la variable de nombre $Valor y el valor de la clave en la
variable de nombre $Clave.
Ejemplo.
<?php
Hay que observar que en el programa anterior, una vez obtenida la clave, el elemento puede ser
referenciado dentro del bucle foreach como $autor o como $Nombre [$clave]
Manejando funciones
PHP dispone de una herramienta llamada función. Una función es un trozo de código, que
permite desarrollar una tarea concreta y bien definida, que se encuentra separado del resto de
las funciones del programa, al que se le ha dado un nombre para poder referenciarlas. A través
de este se puede llamar a la función cada vez que sea necesario. La sintaxis es la siguiente.
Function nombredelafunción ($parametro1, $parametro2,...$parametroN).
Las funciones PHP definidas por el usuario tienen la siguiente sintaxis:
function nombre()
{
.....
...instrucciones...
... funciones PHP...
}
Al ser llamada con esta sintaxis, se ejecutan las instrucciones contenidas en la función.
Aunque en versiones anteriores de PHP era necesario definir la función antes de invocarla, a
partir de la versión 4 no es necesaria esa organización secuencial.
La función y la llamada pueden estar escritas en cualquier parte del documento. En el tercero de
los ejemplos, la llamada a la función está escrita antes de definir la función.
En la function a1() del ejemplo, puedes comprobar este extremo y en la function a2() puedes
comprobar como asignado ámbito global SI toma los valores de esa variable.
Una de las formas de asignar valores a las variables internas es definir variables y valores dentro
del paréntesis que va detrás de function nombre, así por ejemplo:
function p1($a=2,$b=5)
Esos valores - 2 y 5 - serían utilizado por la función independientemente de que las variables $a
y/o $b pudieran contener otros distintos en el ámbito externo de la función.
Otra forma de asignación de valores a las variables internas de una función es pasar los
parámetros por valor. Para hacerlo la sintaxis es la siguiente:
En la definición de la función deben incluirse tantas variables como valores distintos pretendan
pasarse. Por ejemplo:
function p1($a,$b) prepararía la función para recibir dos valores pero requeriría que además, en
la llamada a la función se escribieran esos dos valores separados por comas. Por ejemplo:
p1(47,-32)
Una variante del ejemplo anterior, sería sustituir -en la llamada a la función- las constantes por
variables predefinidas tal como puede verse en la función a5 de los ejemplos.
Traspaso de parámetros
Para pasar un parámetro a una función, es necesario que esta lo tenga definido en la declaración
de la función. Para definir un parámetro en una función, simplemente hay que poner el nombre
que se le quiere dar al parámetro, siguiendo las reglas de la definición de variables, en la lista de
parámetros de la función.
Ejemplo
Function tres($nombre)
{
if ($nombre == “Sara”)
{return 18;} else
{return ( rand(100) );}
}
Y esto funciona muy bien en la mayoría de los problemas que tenemos que resolver mediante las
funciones. Pero que pasa si necesitamos que una función devuelva más de una valor. Para estas
ocasiones es necesario crearse una matriz que contenga los valores y que la función devuelva
dicha matriz.
Function ejemplo3($uno)
{
codigo de la función; return
array($valor1, $valor2, $valor3);
}
Hay que recordar que existen variables locales y variables globales. Para declarar una variable
local solo vasta con hacer lo siguiente:
$variable1 = ”Rodrigo”;
En caso de necesitar una matriz de variables globales se debe hacer lo siguiente: $GLOBALS
$varibleglobal1; $varibleglobal2; $varibleglobal3;
y para acceder a esta matriz de variables globales se le debe de llamar de la siguiente forma:
$GLOBALS [$variableglobal3]
Variables Global
Mediante una declaración de variables globales, dentro de una función, permitimos que dicha
función pueda acceder a variables externas a la misma:
<?php function
mifuncion()
{
global $pais;
echo $pais;
}
$pais = "España";
mifuncion(); echo
$pais;
?>
Variables estáticas
Una variable estática solo existe sólo en el ámbito local de una función y permite que la variable
no pierda su valor cuando la ejecución del programa abandona ese ámbito. De esta forma cuando
se vuelve a llamar la función, todas la variables que se declararon como estáticas recuperan su
valor con el que terminaron en la llamada anterior de la misma función.
Ejemplo:
<HTML>
<HEAD><TITLE>Ejemplo de variables estáticas</TITLE></HEAD> <BODY>
<?php
function contar()
{
static $contador;
$local = 0; for ($i = 1; $i
< 3; $i++)
{
echo "Ejecuto un bucle. Voy por la iteración $i <BR>\n";
$local ++;
$contador++;
}
</BODY>
</HTML>
Una manera de forzar que la función modifique los valores externos de la variable es lo que se
llama en argot «pasar por referencia»
El & puede anteponerse tanto en la definición de la función -fíjate en la función a2 del ejemplo
61 - como en la llamada a la función, tal como puedes ver en el caso de a3 en el ejemplo anterior.
La segunda de las opciones nos concede mayor libertad ya que nos permite usar una sola función
y decidir en las llamadas la forma de pasar los parámetros, con lo cual una misma función puede
ser llamada tanto por valores como por referencia.
Ejercicios:
1. Elabore un programa que lea una lista de nombres de aves introducidas por el usuario en
cualquier orden y luego las ordene en orden alfabético.
2. En la empresa constructora Simón S.A. se tienen registradas las horas trabajadas por sus
obreros en cada uno de los 6 días laborales de la semana. Diseñe un programa que lea los
datos y luego calcule lo siguiente:
3. Crear una función que calcule el factorial de un número entre 1 y 69 si se ingresa otro
número que no está en este rango mandar un mensaje.
7.La utilización de las computadoras en la educación se conoce como instrucción asistida por
computadora (CAI). Un problema que se desarrolla en los entornos CAI es la fatiga del alumno. Esto
puede ser eliminado variando el dialogo de la computadora para retener la atención del alumno.
Teniendo en cuenta esta información se le pide:
Crear una aplicación que les ayude a los estudiantes de 4° grado a practicar las tablas de multiplicación
del 1 al 10.
Criterios:
❖ Los usuarios podrán elegir la tabla que desean practicar antes de iniciar colocar imágenes de números con figuras.
❖ El orden de los números del 1 al 10 tiene que ser al azar sin repetirse.
❖ Los comentarios que se impriman para respuesta correcta e incorrecta deben de variar:
➢ Respuestas a las contestaciones correctas:
▪ Muy bien!
▪ Excelente!
▪ Buen trabajo!
▪ Keep up the good work!
➢ Respuestas a las contestaciones incorrectas:
• No, Inténtelo de nuevo
• Error, una vez más.
• Don’t give up!
• No. Keep trying
• Utilice el generador de números aleatorios para escoger el número de 1 a 4 y seleccionar una respuesta
apropiada para cada una de las contestaciones(almacenarlos en un array).
Ejemplo de un numero aleatorio entre 5 y 15 “echo rand(5, 15);”
El script comenzara a generar cada una de las tablas y esperara la respuesta del usuario.
Al final verificara el porcentaje de aciertos y el porcentaje de errores.
Si el porcentaje es mayor o igual al 75% mostrar una carita feliz aleatoriamente y felicitarlo.
Si el porcentaje es menor al 75% mostrar una imagen animada estudiando aleatoriamente.
Ejercicios especiales:
1. Utilizando arrays crear un script que funcione como una agenda personal, el arreglo
deberá de tener los siguientes elementos (Nombre completo del contacto, teléfono casa,
teléfono celular, dirección, mail). El escript contara con opciones de navegación para
mostrar los registros (Ir al primer, Ir al ultimo, Ir al anterior e Ir al siguiente) Mínimo 10
Registros.