Manual PHP (Parte 1)
Interesante manual PHP nivel basico con el que podrás aprender ha montar paginas web en PHP
1. Contenido
2. Aclaraciones
3. Manual
1. El contenido de manual:
1 Estructura
2 Variables
3 Primer Script en PHP
4 Comandos básicos
5 Operadores
6 Estructuras de Control
7 Bucles
8 “include” y “require”
9 Arrays (Matrices)
2. Aclaraciones:
Este es un manual básico de PHP. Si ya sabés PHP te recomiendo no leer el manual porque te vas a aburrir, aunque tal vez aprendas cosas nuevas. Para colaborar, envía un mail a kazeman@gmail.com o postea en el foro de hdL.
Puedes copiar el manual en otra página siempre y cuando guardes el copyright.
En la próxima edición trataré sobre PHP + MySQL
3. Bueno, aquí doy comienzo al manual.
1.1 Estructura
No creo conveniente el poner algo de historia de PHP, ya que de seguro a nadie le interesa ;) sólo nos interesa aprender, pero si quieres algo de historia, www.php.net o Google te ayudarán.
Empecemos con lo básico, para los que no saben el PHP es un tipo de script que se ejecuta en el servidor, por lo tanto el cliente/usuario, no puede ver el código fuente de nuestra aplicación/script. Esto es lo que lo hace seguro.
A diferencia del HTML que se escribe dentro de las tags el PHP se puede escribir de diferentes maneras:
?>
y puede ser, adentro de html tanto como afuera. Al terminar cada línea exceptuando las estructuras de control (if, switch, etc) y los bucles(for, while, etc) deben llevar un ; (punto y coma). Las estructuras están compuestas por bloques, estos se marcan con { } .
Por ejemplo:
For (i=1,i<10,i++) { //la llave empieza el bloque. Secuencia for, i es igual a 1, mientras i sea menor o igual a 10, i suma i más.
echo i; // el comando echo lo veremos más adelante.
} // Termina el bloque
No se preocupen si no entienden el ejemplo, lo puse para mostrarles el uso de las llaves, el tema se verá más adelante.
3.2 Variables.
Las variables en PHP se pueden llamar de cualquier manera siempre y cuando empiecen con una letra y al principio tengan el $.
Las variables no necesitan declararse, por lo tanto al momento de tener que usar una variable, se crea y automáticamente, define el tipo del cual es cuando recibe “contenido”.
Por ejemplo:
$a = “Hola”; // la variable $a es de tipo String
$b = 1; // la variable $b es de tipo Int
|
Integer |
Números enteros positivos y negativos |
|
Double |
Números decimales o de “coma flotante” |
|
String |
Cadenas de texto |
|
Boolean |
Valores Trae(verdadero) o False(falso) |
|
Array |
Tipo especial de colección de valores / Matriz |
|
Object |
Tipo especial de dato complejo |
Cambiando el tipo de variables:
Estas dos funciones que se pueden ver a continuación se usan normalmente para cambiar el tipo de variable, por ejemplo si quiero hacer una suma entre una cadena y un número, primero tendría que cambiar el tipo de variable de la cadena (castear) hacia entero (Int) y luego hacer la operación.
gettype() Indica el tipo de variable. Recibe el tipo de variable que es
settype($variable,'tipo variable') Transforma el tipo de variable del modo actual a el modo que le introduzcamos.
Constantes
Son valores que se van a mantener constantes a lo largo de la ejecución del script y que posiblemente queramos usar a lo largo del script un gran número de veces. Se usa así:
define("nombre de la constante", valor);
3.3 Primer Script en PHP
Bueno, realizaremos el primer script en PHP. Para empezar, deben crear un archivo de texto y salvarlo como primero.php Haremos el típico “hola mundo!”
$var = “Hola Mundo!”;
echo $var;
?>
No es muy difícil eh? Eso sólo imprimirá un texto sin formato con fondo blanco, etc. Para darle formato pueden usar HTML fuera del script.
3.4 Comandos Básicos
El comando más común es el echo. Este comando lo que hace es imprimir texto. Se usa de la siguiente manera:
echo “Probando”; //Esto imprime el texto Probando
echo $a; // Esto imprime el contenido de la variable $a
3.5 Operadores
3.5.1 Operadores aritméticos
+ Suma dos valores
- Resta dos valores (o pasa a negativo un valor)
* Multiplica dos valores
/ Divide dos valores
% Resto de una división
++ Incremento en una unidad
-- Decremento en una unidad
3.5.2 Operadores de asignación
= Asigna a la parte derecha el valor izquierdo
+= Realiza la suma de la derecha con la izquierda y la asigna a la derecha
-= Realiza la resta de la derecha con la izquierda y la asigna a la derecha
*= Realiza la multiplicación de la derecha con la izquierda y la asigna a derecha
/= Realiza la división de la derecha con la izquierda y la asigna a derecha
%= Se obtiene el resto y se asigna
.= Concatena el valor de la izquierda con la derecha y lo asigna a derecha
3.5.3 Operadores lógicos
! Operador “no” o negación. Si algo era true, pasa a false y viceversa
and Operador “y”, si ambos son verdaderos vale verdadero
or Operador “o”, vale verdadero si alguno de los dos es verdadero
xor Verdadero si alguno de los dos es true pero nunca ambos
&& Es verdadero si ambos los son
|| Es verdadero si alguno lo es
3.5.4 Operadores condicionales
== Comprueba si dos números son iguales
!= Comprueba si dos números son distintos
> Mayor que, devuelve verdadero en caso afirmativo
< Menor que, devuelve verdadero en caso afirmativo
>= Mayor o igual
<= Menor o igual
3.6 Estructuras de Control
Hay diferentes estructuras de control, normalmente se usan para ejecutar ciertas acciones si se cumple o no alguna condición.
3.6.1 Estructura IF
La estructura IF se utiliza para tomar decisiones si se cumple o no una o varias acción/es.
Su estructura es:
If (condición/es) {
Acción a realizar si se cumple la condición.
} else {
Acción a realizar si No se cumple la condición.
}
Un ejemplo:
$nombre=kamalon;
if ($nombre !=kamalon) {
echo “Vos no sos kamalon, sos otra persona”;
} else {
echo “Bienvenido kamalon”;
}
El código traducido significaría:
Si la variable nombre, es diferente a “kamalon” que se imprima en pantalla “vos no sos kamalon, sos otra persona” y si el nombre es kamalon, que diga “Bienvenido kamalon”.
(Para utilizar la estructura IF con otros operadores, los puedes ver más arriba)
3.6.2 Estructura Switch
Como sabemos el contenido de una variable puede ser cualquiera, y esta estructura lo que hace es tomar diferentes decisiones de acuerdo a diferentes contenidos de las variables.
Cada caso comienza con: case “alguncontenido”: y termina con break;
La sintaxis es:
Switch (variable) {
case “uno”:
echo “en la variable dice uno”;
break;
case “dos”:
echo “en la variable dice dos”;
break;
case “tres”:
echo “en la variable dice tres”;
break;
default:
echo “no dice ni uno, ni dos, ni tres”;
break;
El default se debe incluir para evitar errores, por ejemplo si en la variable se introduce “cuatro” ésta daría un error y para eso existe “default”, si el contenido de la variable, no está declarado se ejecuta el bloque default.
3.7 Bucles
Los bucles se utilizan para repetir una misma acción un número determinado de veces. (Aunque piensen “¿Pero de qué me va a servir a mí repetir una acción muchas veces?”, ya se van a dar cuenta de que sirve y mucho).
3.7.1 Bucle For
Este es uno de los tantos bucles, no pongo una descripción para cada uno de ellos, ya que, se puede hacer lo mismo con cada uno sólo modificando pequeñas cosas en la sintaxis.
Sintaxis:
For (inicialización;condición;actualización) {
Código a ejecutarse mientras se cumpla la condición
}
Inicialización: Acá es donde se inicializa una variable que contará el número de veces que se repetirá el bucle. Se ejecuta al iniciar el bucle.
Condición: Para saber si debe seguir repitiendo el bucle, el servidor necesita una condición que se debe cumplir para que se siga ejecutando el for. Cada vez que se inicie el bucle (no sólo la primera vez) se evaluará y se seguirá ejecutando si la cumple y sino no. Se utiliza, además, para determinar la duración del bucle.
Actualización: Sirve para indicar los cambios que queremos que haya en las variables cada vez que termina de ejecutarse el for.
Un ejemplo:
For ($i=1;$i<100;i++) {
echo “el numero es: “.$i;
}
Esto hará que, se imprima en pantalla cien veces: “el numero es:” y el número que corresponda(del 1 al 100).
3.7.2 Bucle While
Sintaxis:
While(condición) {
Código a ejecutar si se cumple la condición
}
Es decir, mientras se cumpla la condición, se seguirá ejecutando el código.
3.7.3 Do…While
Este bucle se usa cuando no sabemos la cantidad de veces que se ejecutará, pero sí sabemos que lo hará por lo menos una vez.
Sintaxis:
do {
Código a ejecutar
}while(condición)
3.7.4 Break y Continue
Break se usa para detener el bucle y dejar de interpretar el código que sigue.
Continue se usa para volver al principio del bucle desde cualquier parte de éste.
3.8 “include” y “require”
Bueno, existen 2 maneras de incluir el código de otro fichero en el que estamos usando.
Una forma es usando:
include(“archivo”);
De esta manera se puede incluir el archivo de manera condicional, es decir, si se cumple una condición o no.
Otra forma:
require(“archivo”);
Con esta instrucción indicamos que sí o sí se necesita ese archivo para que nuestro script pueda ser “utilizado” de manera correcta.
3.9 Arrays (Matrices)
Cuando se crea un script en cualquier lenguaje de programación, a veces existen variables que tienen información parecida y se procesan de ‘igual’ forma. Para esto PHP (y otros lenguajes) poseen un elemento llamado array. Un array es un conjunto de variables agrupadas bajo un único nombre. Cada variable dentro de la matriz es un elemento. Dentro del mismo array pueden existir variables de diferentes tipos y no es necesario que sean todas del mismo tipo.
Hay 2 tipos diferentes de matrices:
- Indexada: Aquella cuyo acceso a los elementos se realiza por la posición que ocupan dentro de la estructura (se inician siempre desde la posición 0). Ejemplo: $usuarios[0]
- Asociativa: Es aquella en la que los elementos están formados por pares clave-valor y el acceso se realiza proporcionando una determinada clave. Ejemplo: $usuarios['nick']
Para crear arrays en PHP existen dos formas:
- De forma implícita, que consistiría en indicarle el elemento(ya sea proporcionando su posición o su clave).Ejemplo: $nicks[0]='KaZeMaN';
En caso de no indicarle una posición, el array tomará el valor siguiente al último valor introducido. Ejemplo: $nicks[]='Confused' // tomaría como valor 1 ya que lo último introducido era 0.
- Mediante erray() en el cual le pasamos los elementos como parámetros. En caso de matriz indexada toman la posición que ocupan en la creación de la matriz, mientras que los de la matriz asociativa se les asigna su valor mediante "=>".Ejemplo: $usuarios=array('Nick'=>'KaZeMaN','Mail'=>'kazemanatgmaildotcom');
Cabe destacar que PHP no sólo se limita a la existencia de matrices por sí solo sino que existen matrices de matrices, o lo que es lo mismo, matrices multidimensionales. Ejemplo: $usuarios[2]['KaZeMaN']
Recorrido de una matriz
Disponemos de diversas herramientas para poder acceder a los elementos de una matriz. En cada momento se mantiene una referencia del elemento de la matriz al que se tiene acceso, por tanto, para recorrer una matriz bastará con modificar dicha referencia. En caso de una matriz indexada el recorrido se realizará mediante un bucle y para ello debemos saber el número de elementos totales que posee la matriz. Para ello nos basamos de la función count(variable) donde variable representa la variable de la que se quiere obtener el número de elementos. Si variable es una matriz devuelve el número de elementos que tiene, devuelve 1 si sólo tiene un elemento (aunque no sea matriz) y 0 si no tiene ningún valor.
Otra función que nos permite saber el número de elementos es sizeof(matriz) .
La función que realiza el constructor list(variable1,variable2...variableN) es asignar los valores del elemento actual de una matriz a las variables indicadas como parámetro.
Navegación sobre matrices
Cuando se trata de matrices indexadas la navegación es sencilla ya que tan solo basta acceder al elemento que queremos mostrar, pero al tratarse de alguna matriz asociativa no se puede aplicar el mismo tratamiento. Para ello existen un conjunto de funciones que nos permiten realizar multitud de acciones:
|
Sintaxis |
Acción |
|
reset(matriz); |
El puntero interno vuelve a la primera posición |
|
end(matriz); |
El puntero interno va a la ultima posición |
|
next(matriz); |
El puntero va al elemento siguiente |
|
prev(matriz); |
Accede al elemento anterior |
|
current(matriz); |
Devuelve el contenido del elemento actual |
Inserción de elementos
Para la inserción de elementos dentro de un array existen una serie de funciones que nos permiten añadir elementos. Entre ellas destacamos:
array_push(matriz,variable1,variableN);
Añade elementos al final de la función y su longitud se incrementará tantos elementos como se hayan añadido.
array_unshift(matriz,variable1,variableN);
Añade elementos al principio de la función desplazando a los otros tantas posiciones como elementos haya.
array_pad(matriz,nuevo_tamaño,valor_relleno);
Aumenta el tamaño de la matriz empleando un valor proporcionado como relleno.
Eliminación de elementos
array_shift(matriz);
Elimina el primer elemento de la matriz
array_pop(matriz);
Elimina el último elemento de la matriz
array_splice(entrada,pos_ini,[tamaño],[sustitutos]);
Se usa para reemplazar o borrar el contenido de una porción de matriz, para ello debemos especificar la posición desde la cual queremos iniciar el borrado o sustitución, el tamaño o número de elementos que se verán afectados y los sustitutos (en caso que deseemos sustituirlo por algún elemento).
array_keys(matriz,[valor buscado]);
Se emplea cuando deseamos eliminar un elemento cuya posición desconocemos.
array_values(matriz);
Devuelve una matriz indexada con todos los valores almacenados en la matriz pasada como parámetro.
Manipulación masiva de matrices
array_walk(matriz,nombre_de_la_funcion,lista_parametros);
Se emplea para realizar el mismo proceso definido en la función en todos los elementos incluidos.
Obtención de submatrices
array_slice(matriz,posicion,tamaño);
Permite extraer una secuencia de elementos de una matriz. Los parámetros a pasarle son la matriz en la cual queremos extraer dichos elementos, la posición desde la que se inicia la extracción y el tamaño de la extracción (posiciones que abarcamos a partir de la inicial).
Ordenación de matrices
|
Criterio |
Función |
|
Orden ascendente(matriz indexada) |
sort(matriz) |
|
Orden descendente(matriz indexada) |
rsort(matriz) |
|
Orden ascendente por valor(matriz asociativa) |
asort(matriz) |
|
Orden descendente por valor(matriz asociativa) |
arsort(matriz) |
|
Orden ascendente por clave(matriz asociativa) |
ksort(matriz) |
|
Orden descendente por clave(matriz asociativa) |
krsort(matriz) |
Otras funciones
compact() Devuelve una matriz asociativa a partir de un numero indeterminado de parámetros
extract() Crea variables desde matriz asociativa
array_unique() Devuelve matriz sin datos repetidos ya que algunos se eliminan
array_reverse() Devuelve matriz con mismos elementos pero en orden inverso
shuffle() Modifica el orden de elementos de forma aleatoria
array_count_values() Devuelve una matriz asociativa que contiene frecuencias de repetición de los valores de la matriz
in_array() Permite comprobar si un valor esta en la matriz
array_merge() Combina elementos de dos matrices en 1
Manual Escrito por KaZeMaN
kazeman@gmail.com