Arrays
Un array
(matriz) en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos
que asocia valores con claves. Este tipo es optimizado para
varios usos diferentes; puede ser usado como una matriz real, una lista
(vector), tabla asociativa (caso particular de implementación de un mapa),
diccionario, colección, pila, cola y probablemente más. Ya que los valores de
un array pueden ser otros arrays,
también es posible crear árboles y arrays
multidimensionales.
Una explicación sobre tales
estructuras de datos se encuentra por fuera del propósito de este manual, pero
encontrará al menos un ejemplo de cada uno de ellos. Para más información,
consulte la extensa literatura que existe sobre este amplio tema.
<?php$arr = array("foo" => "bar", 12 => true);echo $arr["foo"]; // barecho $arr[12]; // 1?> <?php$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));echo $arr["somearray"][6]; // 5echo $arr["somearray"][13]; // 9echo $arr["somearray"]["a"]; // 42?> <?php
$a = array(
"manzana" => array(
"color" => "rojo",
"sabor" => "dulce",
"forma" => "redondeada"
),
"naranja" => array(
"color" => "naranja",
"sabor" => "ácido",
"forma" => "redondeada"
),
"plátano" => array(
"color" => "amarillo",
"sabor" => "paste-y",
"forma" => "aplatanada"
)
);
echo $a["manzana"]["sabor"]; # devolverá "dulce"
?>
OPERADORES
Aritméticos:
|
Ejemplo
|
Nombre
|
Resultado
|
|
$a + $b
|
Adición
|
Suma de $a y $b
|
|
$a - $b
|
Substracción
|
Diferencia entre $a y $b
|
|
$a * $b
|
Multiplicación
|
Producto de $a and $b
|
|
$a / $b
|
División
|
Cociente de $a entre $b
|
|
$a % $b
|
Módulo
|
Resto de $a dividido entre $b
|
Relacionales:
|
Ejemplo
|
Nombre
|
Resultado
|
|
$a ==
$b
|
Igualdad
|
Cierto si $a es
igual a $b
|
|
$a
=== $b
|
Identidad
|
Cierto si $a es
igual a $b y si son del mismo tipo (sólo PHP4)
|
|
$a !=
$b
|
Desigualdad
|
Cierto si $a no
es igual a $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
|
Incremento/decremento:
|
Ejemplo
|
Nombre
|
Resultado
|
|
++$a
|
Preincremento
|
Incrementa $a en
uno y después devuelve $a
|
|
$a++
|
Postincremento
|
Devuelve $a y
después incrementa $a en uno
|
|
--$a
|
Predecremento
|
Decrementa $a en
uno y después devuelve $a
|
|
$a--
|
Postdecremento
|
Devuelve $a y
después decrementa $a en uno
|
Lógicos:
|
Ejemplo
|
Nombre
|
Resultado
|
|
$a
and $b
|
Y
|
Cierto si tanto
$a como $b son ciertos
|
|
$a or
$b
|
O
|
Cierto si $a o $b
son ciertos
|
|
$a
xor $b
|
O
exclusiva
|
Cierto si $a es
cierto o $b es cierto, pero no ambos a la vez
|
|
! $a
|
Negación
|
Cierto si $a no
es cierto
|
|
$a
&& $b
|
Y
|
Cierto si tanto
$a como $b son ciertos
|
|
$a ||
$b
|
O
|
Cierto si $a o $b
son ciertos.
|
ESTRUCTURAS DE CONTROL
if:
La construcción if
es una de las más importantes características de muchos lenguajes, incluido
PHP. Permite la ejecución condicional de fragmentos de código. PHP caracteriza
una estructura if que es similar a la de C:
<?php
if
(expr)
sentencia
?>
else:
A menudo queremos
ejecutar una sentencia si se cumple una cierta condición, y una sentencia
distinta si la condición no se cumple. Esto es para lo que sirve else. else
extiende una sentencia if para ejecutar una sentencia en caso de que la
expresión en la sentencia if se evalúe como FALSE. Por ejemplo, el siguiente
código mostraría a es mayor que b si $a fuera mayor que $b, y a NO es mayor que
b en cualquier otro caso:
<?php
if ($a > $b)
{
print "a es mayor
que b";
}
else
{
print "a NO es mayor que b";
}
?>
switch:
|
<?php
if ($i == 0)
{
print "i es igual a 0";
}
if ($i == 1)
{
print "i es igual a 1";
}
if ($i == 2)
{
print "i es igual a 2";
}
?>
|
<?php
switch ($i)
{
case 0:
print
"i es igual a 0";
break;
case 1:
print "i es igual a 1";
break;
case 2:
print "i es igual a 2";
break;
}
?>
|
while:
Los bucles while
son los tipos de bucle más simples en PHP. Se comportan como su contrapartida
en C. La forma básica de una sentencia while es:
<?php
while
(expr)
sentencia
?>
do while:
Los bucles do..while son muy similares a los
bucles while, excepto que las condiciones se comprueban al final de cada
iteración en vez de al principio. La principal diferencia frente a los bucles
regulares while es que se garantiza la ejecución de la primera iteración de un
bucle do..while (la condición se comprueba sólo al final de la iteración),
mientras que puede no ser necesariamente ejecutada con un bucle while regular
(la condición se comprueba al principio de cada iteración, si esta se evalúa
como FALSE desde el principio la ejecución del bucle finalizará
inmediatamente).
<?php
do
{
if
($i < 5)
{
print
"i no es lo suficientemente grande";
break;
}
$i
*= $factor;
if
($i < $minimum_limit)
{
break;
}
print
"i es correcto"; ...procesa i...
}
while(0);
?>
for:
Los bucles for son
los bucles más complejos en PHP. Se comportan como su contrapartida en C. La
sintaxis de un bucle for es:
<?php
for
(expr1; expr2; expr3)
sentencia
?>
foreach:
PHP4 (PHP3 no)
incluye una construcción foreach, tal como perl y algunos otros lenguajes. Esto
simplemente da un modo fácil de iterar sobre arrays. Hay dos sintaxis; la
segunda es una extensión menor, pero útil de la primera:
Nota: Cuando foreach comienza su primera ejecución,
el puntero interno a la lista (array) se reinicia automáticamente al primer
elemento del array. Esto significa que no se necesita llamar a reset() antes de
un bucle foreach.
Nota: Hay que tener en cuanta queforeach con una
copia de la lista (array) especificada y no la lista en si, por ello el puntero
de la lista no es modificado como en la construcción each.
<?php
foreach(expresion_array as $value)
sentencia
foreach(expresion_array
as $key => $value)
sentencia
?>
break:
break escapa de la
estructuras de control iterante (bucle) actuales for, while, o switch.
break accepta un
parámetro opcional, el cual determina cuantas estructuras de control hay que
escapar
<?php
$arr
= array ('one', 'two', 'three', 'four', 'stop', 'five');
while (list (, $val) = each ($arr))
{
if ($val == 'stop')
{
break; /*
Tambien se puede escribir 'break 1;' here. */
}
echo
"$val<br>\n";
}
?>
continue:
continue se usa
dentro de la estructura del bucle para saltar el resto de la iteración actual
del bucle y continuar la ejecución al comienzo de la siguiente iteración.
continue accepta un
parámetro opcional, el cual determina cuantos niveles (bluces) hay que saltar
antes de continuar con la ejecución.
while (list($key,$value) = each($arr))
{
if ($key % 2)
{
// salta los miembros impares continue;
}
do_something_odd
($value);
}
$i
= 0;
while
($i++ < 5)
{
echo
"Outer<br>\n";
while
(1)
{
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";
}
require y
Include:
La sentencia require() se sustituye a sí misma con
el archivo especificado, tal y como funciona la directiva #include de C.
Un punto importante
sobre su funcionamiento es que cuando un archivo se incluye con include() o se requiere con require()), el intérprete sale del
modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve
de nuevo al modo PHP al final. Por esta razón, cualquier código dentro del
archivo referenciado que debiera ser ejecutado como código PHP debe ser
encerrado dentro de etiquetas válidas de comienzo y fin de PHP.
<?php
require(
“header.inc” );
?>
<?php
include(
“header.inc” ); ?>
FUNCIONES
Parámetros de
las Funciones:
Pasar parámetros
por referencia :
Por defecto, los
parámetros de una función se pasan por valor (de manera que si cambias el valor
del argumento dentro de la función, no se ve modificado fuera de ella). Si
deseas permitir a una función modificar sus parámetros, debes pasarlos por
referencia.
Si quieres que un
parámetro de una función siempre se pase por referencia, puedes anteponer un
ampersand (&) al nombre del parámetro en la definición de la función:
function add_some_extra(&$string)
{
$string .= ' y algo más.';
}
$str = 'Esto es una cadena, ';
add_some_extra($str);
echo $str;
function foo
($bar)
{
$bar .= ' y algo más.';
}
$str = 'Esto
es una cadena, ';
foo ($str);
echo $str;
foo (&$str);
echo $str;
Parámetros por
defecto :
Una función puede
definir valores por defecto para los parámetros escalares estilo C++:
El valor por
defecto tiene que ser una expresión constante, y no una variable o miembro de
una clase.
function makecoffee ($type =
"cappucino")
{
return
"Hacer una taza de $type.\n";
}
echo makecoffee ();
echo makecoffee ("espresso");
Lista de
longitud variable de parámetros :
PHP4 soporta las
listas de longitud variable de parámetros en las funciones definidas por el
usuario. Es realmente fácil, usando las funciones func_num_args(),
func_get_arg(), y func_get_args().
No necesita de
ninguna sintaxis especial, y las listas de parámetros pueden ser escritas en la
llamada a la función y se comportarán de la manera esperada.
func_num_args
int func_num_args (void );
Devuelve el número
de argumentos pasados a la función actual definida por el usuario.
func_num_args() generará un aviso si es llamada
desde fuera de la definición de la función.
func_get_arg
int func_get_arg (int arg_num);
Devuelve el
argumento que está en la posición arg_num en la lista de argumentos de
una función definida por el usuario. Los argumentos de la función se cuentan
comenzando por la posición cero. func_get_arg()
generará un aviso si se llama desde fuera de la definición de la función.
Si arg_num
es mayor que el número de argumentos pasados realmente, se generará un aviso y func_get_arg() devolverá FALSE.
func_get_args
int func_get_args (void );
Devuelve un array
en el que cada elemento es el miembro correspondiente de la lista de argumentos
de la función definida por el usuario actual. func_get_args() generará un aviso si es llamada desde fuera de la
definición de la función.
No hay comentarios:
Publicar un comentario