Como vemos, manejar arrays multidimensionales es trivial en PHP, basta con añadir los corchetes y el subíndice deseado.
La construcción Array() también puede usarse con arrays asociativos:
$arrValores=array(
"nombre" => "Tancredo",
"Apellidos" => array("Gómez", "Jiménez")
);
La construcción List() nos permite asignar los valores de un array a una serie de variables de una sola vez:
$arrValores=Array(1, "Una cadena", 1.2);
List($nNumber, $strCadena, $fNumber) = $arrValores;
echo("$nNumber vale $nNumber, $strCadena vale " .
"'$strCadena' y $fNumber vale $fNumber");
saca como resultado:
$nNumber vale 1, $strCadena vale 'Una cadena' y $fNumber vale 1.2
Conversiones
Para convertir una variable de un tipo a otro se emplea el casting mediante paréntesis:
$strVariable = "5";
$valor = (integer) $strVariable;
$valor contiene el valor numérico de la variable $strVariable.
También podemos emplear la función SetType($varname, "vartype") para forzar que la variable $varname sea del tipo vartype.
De
todas formas, PHP es bastante consecuente en cuanto a los tipos, de
manera que si sumamos un número a una cadena, esa cadena se convierte
en un número:
$strCadena="5";
echo('$strCadena es de tipo ' . GetType($strCadena) .
" y vale $strCadena
");
$strCadena = $strCadena + 5;
echo('$strCadena es de tipo ' . GetType($strCadena) .
" y vale $strCadena
");
produce como resultado
$strCadena es de tipo string y vale 5
$strCadena es de tipo integer y vale 10
En caso de que concatenemos una cadena con un número, PHP realiza la conversión del número a cadena automáticamente:
echo("El número es " . 5 . "
");
Produce la salida esperada
El número es 5
Variables predeclaradas HTTP
PHP tiene toda una serie de variables predeclaradas que tienen que ver con HTML, como:
* $PHP_AUTH_USER: Usuario de la autenticación.
* $PHP_AUTH_TYPE: Tipo de autorización.
* $PHP_AUTH_PW: * con la que se autenticó el usuario.
* $HTTP_POST_VARS: Array con las variables de un form pasadas por el método POST.
* $HTTP_PUT_VARS: Array con las variables de un form pasadas por el método PUT.
Aparte
de los arrays $HTTP_PUT_VARS y $HTTP_POST_VARS, podemos acceder a las
variables provenientes de forms HTML como $nombrevariable, supongamos
el siguiente form:
Mientras que en la página tratar_form.phtml podemos acceder a las variables del form con:
Echo("Nombre: $Nombre
Apellido1: $Apellido[0]
Apellido2: $Apellido[1]
");
Comprobación de declaración
En
ocasiones es necesario saber si una variable ha sido inicializada ya
(sobre todo si proviene de un form html, por ejemplo), para ello
tenemos la función IsSet($variable) que nos permite saber si esa
variable fue ya inicializada.
Esta función debe ser usada
conjuntamente con un error_reporting(~
para que el intérprete no
capture el error de intento de acceso a variable no inicializada.
1.4 Constantes
Las constantes en PHP son literales que no comienzan por "$" y que se inicializan con la construcción define(nomconst):
define("MAX_CLIENTS", 25);
Echo(MAX_CLIENTS);
Las constantes predefinidas __FILE__ y __LINE__ nos dan el nombre del fichero y el número de línea actual.
1.5 Operaciones
booleanas, concatenación de cadenas, aritméticas.
1.6 Sentencias de control
Las estructuras de control de PHP son iguales que las de C, con algún que otro añadido.
Condicionales
La estructura de los condicionales es igual que en C:
if ($usuario == "Wildfred") {
} elseif ($usuario == "Winifred") {
} else {
}
Switch
switch ($usuario) {
case "Wildfred":
break;
case "Winifred":
break;
default:
}
La expresión de selección de rama del case tiene que ser escalar (no objeto o array).
Bucles
En
los bucles pueden usarse las instrucciones break y continue para salir
del bucle actual o para avanzar hasta la próxima iteración.
For
for ($i=0;i<40;i++) {
Echo("$i vale $i
");
}
While
$bDoExit = 0;
while (!$bDoExit) {
Echo("Iterando
");
$bDoExit = 1;
}
do {
Echo("Iterando
");
$bDoExit = 1;
} while (!$bDoExit);
list, Each (arrays)
Existen dos funciones que combinadas nos permiten iterar fácilmente por todos los elementos de un array:
$arrApellidos = array("Pepe" => "Pérez", "Paco" => "Gómez");
while ( list($strNombre, $strApellidos) = each($arrApellidos)) {
Echo("$strNombre se apellida $strApellidos.
");
}
Todos
los arrays mantienen un contador interno (accesible mediante las
funciones current, reset, next y prev, y la función each se encarga de
devolver current y llamar a next. Con la función list asignamos la
clave y el elemento a las variables $strNombre $strApellidos, hasta que
no queda ningún elemento (each devuelve null).