Jump to content

darkarrow_ayora
 Share

Recommended Posts

1. PHP, qué es y como funciona.

 

PHP es un lenguaje de programación mayoritariamente usado para hacer webs.

Es un lenguaje de lado servidor, es decir, el código se ejecuta en el servidor y el resultado es enviado al cliente.

 

Por ejemplo al acceder a metin2zone.net el servidor detecta que queremos ver esa pagina y le dice a PHP que genere la página, PHP se encargará de generar los distintos foros y subforos, de saber quien eres, tus permisos etc.

 

En resumen, haces una peticion y PHP se encarga de responder de forma adecuada.

 

 

2. PHP esencial

2.1 Distinguir entre PHP y HTML

 

 

Recordad: PHP servidor, HTML+extras cliente.

 

Lo primero, HTML NO es un lenguaje de programación, es un lenguaje del cual se sirve el navegador para saber cómo representar las cosas.

Por ejemplo "este texto en negrita" ---> "<bold>texto</bold>"

Luego está CSS que es otro lenguaje (no de programación, sino de definicion de estilos), básicamente evita escribir repetidamente mucho código HTML y es más legible desde el punto de vista del diseñador.

Y por último tenemos javascript que es un lenguaje de lado cliente que sirve para hacer cosas muy chulas con tu web, se ejecuta en TU ordenador.

 

 

2.1.1 Escapando HTML

 

 

Para poder ejecutar código PHP hay que salir del "modo" html, ya que por defecto se interpreta como texto a enviar al cliente a no ser que se encuentren las etiquetas de PHP, entonces se ejecuta el código. Es decir:

<html>
<head></head>
<body>
<p>Hola</p>
<?php   echo "<p>mundo.</p>";   ?>
</body>
</html>

El código de arriba envia el texto hasta que detecto las etiquetas de php (<?php y ?>) entonces ejecuta el código de su interior y después de salir delas etiquetas sigue enviando texto al navegador hasta que se acabe. Si se encontrara de nuevo con las etiquetas de php ejecutaría el código que éstas contengan.

 

 

2.2 Separando instrucciones

Las instrucciones se separan con un cada instrucción es un fragmento de código que se ejecuta.

 

3. PHP básico

3.1 Enviar texto al cliente

 

 

Bueno para enviar texto al cliente (o navegador) se usa la sentencia echo seguida del texto que quieres enviar entre comillas dobles "texto" o simples 'texto' y un punto y coma ";"

<?php
   echo "Este texto se enviará al cliente";
   echo 'este tambien.';
?>

 

 

 

3.2 Comentarios

 

 

Un comentario es un trozo de código que no se ejecuta, es decir, no se tiene en cuenta.

Pero sirve al programador para escribir cosas sobre su código que otros no saben, o que ayudaría a entenderlo etc.

 

En PHP se pueden escribir de dos formas, con dos barras // cuando el comentario acaba en la misma linea, y delimitado entre /* y */ cuando vamos a escribir más de una línea:

<?php
//Ejemplo de uso de comentario de una sola linea

   /* El siguiente código
   envia los números 1 2 y 3
   separados por lineas */

echo "1<br>2<br>3<br>"; //El código HTML para nueva linea es <br>
?>

 

 

 

3.3 Variables

 

 

Una variable es como una caja a la que le pones un nombre y guardas lo que tu quieras dentro, en programación es un nombre al que le podemos dar un valor, modificarlo, leerlo etc.

Crear una variable es muy fácil, basta con poner un símbolo de dolar: seguido del nombre, debe empezar por _ o letra, luego puede contener numeros, un =, un valor y punto y coma ";" para finalizar.

<?php
   $miVariable = 5;
   $miOtraVariable = " holaHOLA";//contiene un espacio al principio del texto

   /* Tened en cuenta que el texto se envia seguido,
         por eso holaHOLA contiene un espacio al principio,
         para que no aparezca 5holaHOLA */

   echo $miVariable;
   echo $miOtraVariable;
?>

Para qué sirve esto, pues cada vez que usemos la variable estaremos usando en realidad el valor que contiene, así el código anterior enviaría al cliente este texto: "5 holaHOLA"

 

 

 

3.3.1 Constantes

 

Las constantes son parecidad a las variables en que son un nombre que contiene un valor,

pero éstas no se pueden cambiar, por eso se llaman constantes.

A parte, no tienen el símbolo de dolar delante del nombre.

Para definirlas se hace de la siguiente manera: define( *nombre de la constante entre comillas*, *valor*);

<?php

define("NUEVALINEA", "<br>");

echo "Hola";
echo NUEVALINEA;
echo "mundo;

?>

 

 

 

3.4 Operaciones aritméticas

 

 

Los operadores para sumar, restar, multiplicar, dividir, obtener el resto, y potencia son: +, -, *, /, % y ** respectivamente.

De aquí lo más raro es el operador de resto que sirve para saber "cuanto me sobra del dividendo para que una division sea entera".

 

Ejemplos:

<?php

$var_A = 5+5; //var_A vale 10
$var_B = 3*5; //var_B vale 15
$var_C = 7/2; //var_C vale 3.5
$var_D = 8%3; //var_D vale 2, 8 entre 3 produce 2 de resto
$var_E = 3**2; //var_E vale 9, 3 al cuadrado

?>

 

 

 

3.5 Lógica

 

 

Bueno, al principio puede asustarte esto pero es muy fácil, en lógica solamente hay dos valores, verdadero o falso (true o false)

El resultado de evaluar una expresion lógica siempre es true o false, excepto algunos casos excepcionales que será null

 

 

3.5.1 Operadores lógicos

 

 

En las expresiones lógicas encontraremos los siguientes operadores lógicos:

De comparación:

Menor que: <

Mayor que: >

Menor o igual que: <=

Mayor o igual que: >=

Igual que: ==

Distinto de: !=

 

Operadores lógicos:

AND: and o && ... X && Y da como resultado true si X e Y son ambos true, en caso contrario false

OR: or o ||... X || Y da como resultado false solo si X e Y son false, en caso contrario true

XOR: xor...xor funciona como or, pero en caso de ser X e Y true tambien tendría como resultado false.

NOT: !...invierte el valor lógico, convierte true a false y viceversa.

 

Todos ellos funcionan con dos operandos, uno a la izquierda y otro a la derecha,

los de comparación funcionan con números y los lógicos con true o false, aunque se pueden combinar.

<?php
//Operadores de comparacion
$A = 3<5; //$A vale true, por que 3 es menor que 5
$B = 3>5; //$B vale false, 3 no es mayor que 5

$C = 11<=10; //false, 11 no es menor o igual que 10
$D = 3>=3; //true, 3 es mayor o igual que 3

$E = 4==4; //C vale true, por que 4 es igual a 4
$F = 123 != 0; //D vale true, por que 123 es distinto de cero

//Operadores lógicos
$a = true && false; //false
$b = true || false; //true
$c = true xor false; //true
$d = !true; //false
$e = !false; //true

?>

 

 

 

3.5.2 Expresiones lógicas

 

 

Vale, vamos a complicar un poco la cosa, en primer lugar decir que los operadores and an or se pueden escribir de dos formas por que and tiene una prioridad distinta a la de &&, pero normalmente ni se escriben expresiones lógicas demasiado complejas ni se usan las dos formas en la misma expresión, se suele, usar los paréntesis para definir la prioridad de una operación sobre otra, que además estamos más acostumbrados y es menos lioso a la hora de leer código.

<?php

//Ejemplo sencillo, más orientado a casos cotidianos
$precio = 50;
$monedero = 30;

$puedeComprar = $monedero >= $precio;//true

$tamaño = 5;
$mochila = 4;

$puedeCargarlo = $mochila >= $tamaño;//false

$comprar = $puedeComprar && $puedeCargarlo;//true && false = false

?>

 

 

 

3.6 Estructuras de control

 

 

Las estructuras de control sirven para elegir el camino que va a tomar nuestro programa en función de ciertos factores.

Es decir, si una variable me vale X que se ejecute este cacho, sinó este otro cacho.

O si una variable vale 5, que este trozo de código se ejecute 5 veces.

 

 

3.6.1 If, elseif, else

 

 

Ponemos una condición, si la condición se cumple se ejecuta el código.

Opcionalmente podemos poner condiciones extras a comprobar, en caso de que la condición anterior no se cumpla se ejecutaria lo que pongamos.

Opcionalmente podemos elegir qué hacer en caso de no cumplirse la condición.

 

La sintaxis es la siguiente:

if( *condición* )

{

*código a ejecutar si la condición se cumple*

}

(opcional: 0 o más condiciónes extra)

elseif( *condición extra* )

{

*código*

}

elseif( *condición* ){ *código* }

...

(opcional: que ejecutar en caso de que ninguna de las condiciones se cumpla)

else

{

   *código*

}

 

Ejemplo:

<?php

$edad = 22;

if( $edad<18 )
{
   echo "Eres menor de edad";
}
elseif( $edad<65 )//Si llegamos a esta condicion, ya sabemos que la edad es mayor que 18
{
   echo "Puedes trabajar";
}
else //Llegados a este punto, sabemos que la edad es mínimo 65
{
   echo "Tú ya has trabajado bastante";
}


?> 

 

 

 

3.6.2 Switch

 

 

El switch, es parecido al if&else, un poco limitado ahora veremos por qué, pero cuando se usa es mucho mas bonito y claro que con su compañero el if&else.

 

Su sintaxis es la siguiente:

switch( *una variable o una expresión que tenga como resultado un valor* )

{

...//El número de case debe ser >= que 1

...case *valor*:

......*codigo*

...//default es opcional

...default:

      *codigo*

}

 

Funciona de la siguiente manera:

Primero se lee lo que hay dentro de los paréntesis, si es una variable pues se lee su valor, si es una expresión, por ejemplo ($var + 5) u otra cosa (por ejemplo el resultado de una funcion) pues se calcula ese resultado. Luego se compara con los distintos case para ver qué valor coincide con el resultado anterior, si coincida se ejecuta TODO el código que se encuentre desde ahí hasta que acaba el switch por eso en los switch se usan los break; que como ahora veremos sirven para finalizar el switch y proseguir la ejecución por donde acaba.

 

La limitación viene en que se compara un valor con otro, y en los if&else puedes poner lo que quieras, que mientras se evalue a true se ejecuta, es decir todo lo que no sea 0, o null se entiende que es como true.

 

Ejemplo:

<?php

$x = 5;
$y = 3;
$resultado = 0;

$operacion = "sumar";

switch( $operacion )
{
   case "sumar":
      $resultado = $x+$y;
      break; //OJO QUE NO SE OLVIDEN LOS BREAK
   case "multiplicar":
      $resultado = $x*$y;
      break;
   default:
      echo "No se ha elegido ninguna operacion"; // Aquí no hace falta break
}

echo "Resultado: ";
echo $resultado;
?>

 

 

 

3.7 Bucles

 

Los bucles son una estructura de control que nos permite repetir un bloque de código un tantas veces como queramos.

Ejemplo:

X = 5 //le damos uno a la variable

mientras que X sea mayor o igual que uno ejecutar lo siguiente:
{
   imprimir X
   imprimir ", "
   restar uno a X
} 

Este bucle imprime X, resta 1, imprime X etc. hasta que X es menor que 1 entonces para. El resultado sería: 5, 4, 3, 2, 1

 

Denominaremos iteración a cada vez que el código del bucle se ejecuta.

Denominaremos salir o romper del/el bucle cuando termina la ejecución del bucle y se continua con el código que está fuera del bucle.

Se puede forzar la salida del bucle con la sentencia break;

Se puede fozar el comienzo de una nueva iteración, sin ejecutar el resto de código que quedaba en la actual iteración.

Al forzar una nueva iteración también se comprobará si la condición se cumple o no.

 

 

 

3.7.1 While

 

El bucle while funciona de la siguiente forma:

- Mientras que la condición se cumpla se ejecuta su bloque de código.

- Cuando no se cumple se sale del bucle.

 

Sintaxis:

while( *condicion* )

{

...*bloque de código*

}

 

Ejemplo:

<?php

define( "SEPARADOR", " - " ); //Esto es una constante que vale " - "
$numero = 5;

while( $numero >= 1 )
{
   echo $numero;
   echo SEPARADOR;
   $numero = $numero -1;//Restamos uno a la variable $numero
}

//Resultado: 5 - 4 - 3 - 2 - 1 - 

?> 

 

 

 

3.7.2 For

 

 

El bucle for funciona de manera igual al while, solo que es un poco distinto, veamos su sintaxis:

for( *expresion1* ; *expresion2* ; *expresion3* )

{

...*bloque de código*

}

 

Donde:

*expresion1* es ejecutada solo una vez al comienzo del bucle, podemos llamarla inicialización

*expresion2* es la condición del bucle

*expresion3* es una expresión que se ejecuta en cada iteración, DESPUÉS de ejecutar el bloque de código

 

Tanto la expresión1 como la expresión3 pueden contener varias instrucciones/sentencias separadas por comas.

 

Ejemplo 1:

<?php

//Vamos a hacer el bucle anterior (while) pero ahora con un for

for( $numero=5 ; $numero>=1 ; $numero=$numero-1 )
{
   echo $numero;
   echo " - ";
}

?>

Y ahora otro ejemplo:

<?php

define("LN", "<br>"); //Constante LN = "<br>" (linea nueva)

//ACLARACIÓN 1: $n++ aumenta en 1 el valor de $n, es equivalente a $n = $n +1;
//ACLARACIÓN 2: Si el bucle for no tiene bloque de código se pone ; al final

for( $n=1 ; $n<=10 ; echo $n, echo LN, $n++ );

//Esto imprime los numeros del 1 al 10, cada uno en una linea
?> 

 

 

 

3.7.3 Do-while

 

 

El bucle do-while, es igual al bucle while con la excepción de que ejecutará el bloque de código una vez, y cada vez que la condición se cumpla, otra vez.

 

Sintaxis:

do

{

   *bloque de código*

}

while( *condición* );

 

Ejemplo:

<?php

define( "ATAQUE", 25);

$vida = 170;
$ataques = 0;

do
{
   $ataques = $ataques+1; //Aumenta en 1 $ataques
   $vida = $vida - ATAQUE; //$vida decrece ATAQUE unidades (25)
}
while( $vida>0 );

echo "Has matado a tu enemigo,<br>";
echo "has usado "; echo $ataques; echo "ataques.";

?> 

 

 

 

 

3.8 Strings (texto) cómo trabajar con él

 

 

El texto en programación en general es considerado como una secuencia de carácteres,

cada carácter tiene una posición en la secuencia, empezando por el 0.

 

Se pueden hacer muchas cosas distintas con strings, casi todas mediante funciones, hay muchas funciones para trabajar con strings, en este

Debes iniciar sesión para ver el contenido del enlace en esta publicación.
puedes consultarlas todas.

 

Los textos son un valor que en programación en general se denominan tipo string (cadena en inglés).

 

En php los strings se pueden expresar entre comillas simples o comillas dobles "texto" o 'texto'.

*El carácter de escape para PHP es la barra invertida " \ " *

 

- Comillas simples:

---> PHP interpreta el texto tal cual se ve

---> Para introducir el caracter de comilla  '  en el texto se escapa, quedaría \'

---> Para introducir el carácter barra invertida \ en el texto, se escapa con otra barra invertida \\

---> Cualquier otro caracter no se escapará, como el de nueva línea (\n)

 

- Comillas dobles

---> Tiene más secuencias de escape (incluye las secuencias de nueva linea, tabulaciones, numero en octal, numero en hexadecimal etc.)

---> Si encuentra una variable dentro intercambiará el nombre de la variable por su valor, se llama a esto expandir variable.

---> Se puede encerrar entre llaves { y } una expresión que retorne un valor para que se evalue y se incluya en esa posición en el string.

 

Independientemente de si se han expresado con comillas simples o dobles, podemos operar con ellos de igual forma, concatenandolos o como argumentos de funciones, o en los echo's etc.

 

Para unir dos textos (o expresiones) como si fueran un solo texto se usa el operador de concatenación: . (punto) 

Ejemplo:

<?php

$a = "aaa";
$b = "bbb";

$ab = $a . $b;        //$ab vale "aaabbb" el operador . ha concatenado dos variables en un string
$_ab = "aaa" . "bbb"; //$_ab vale "aaabbb" el operador . ha concatenado dos strings

//Si una variable contiene un numero, éste se traduce a string

?>

Ejemplo:

<?php

define("HOY", "domingo");
$manana = 'lunes';

echo "Hoy es {HOY}, mañana será $manana";

//Con comillas simples hay que concatenar el texto
echo 'Hoy es '.HOY.'mañana será '.$manana;

//  Si el nombre de la variable puede crear conflictos con caracteres del string
//es recomendable encerrar el nombre entre llaves.
$numKg = 17;
echo "Mi perro pesa $numKgkg.";//estariamos expandiendo la variable $numKgkg
echo "Mi perro pesa {$numKg}kg";//estariamos expandiendo la variable $numKg

//También es recomendable escapar las llaves dentro de los entrecomillados dobles

   //Intenta expandir la constante y
echo "Los if ejecutan lo que tienen entre { y } si se cumple la condición";//mal

   //Solucion:
echo "Los if ejecutan lo que tienen entre \{ y \} si se cumple la condición";

  //Otra solución es usar comillas simples
echo 'Los if ejecutan lo que tienen entre { y } si se cumple la condición';

?>

 

 

 

4. Comienza lo bonito

Comenzamos a explicar lo más útil y también algo más complicado del lenguaje.

 

4.1 Funciones, como usarlas

Las funciones en PHP son una expresión que ejecuta el código correspondiente a dicha función, pueden devolver un valor o no, y pueden ser llamadas con argumentos o sin ellos, algunas funciones permiten ser llamadas con un número variable de argumentes y algunas otras pueden devolver o no algún valor.

 

Por ejemplo, la función strlen devuelve el número de letras que tiene un string. Se usa de la siguiente manera:

<?php

$string = "12caracteres";

/*  strlen recibe $string como argumento
*   y retorna el numero de caracteres,
*   este numero puede ser almacenado en una variable
*   o usado en otra funcion (echo en realidad es una funcion)
*/
$var = strlen( $string ); //$var vale 12
echo strlen( $string ); //imprime 12

$var2 = strlen( "13_caracteres" ); //$var2 vale 13
echo strlen( "13_caracteres" ); //imprime 13

?>

Como podeis observar, se utilizan poniendo el nombre de la funcion seguida de parentesis, sus argumentos, y cerramos paréntesis.

 

 

 

4.1.1 Argumentos

Las funciones pueden, como ya hemos dicho, requerir o no, argumentos.

Una función puede requerir un número constante de argumentos, o un número variable.

 

Éstos argumentos son necesarios para que la función pueda ejecutarse correctamente.

 

Por ejemplo la funcion mktime acepta un número variable de argumentos, entre ninguno y 7 para ser exactos,

Debes iniciar sesión para ver el contenido del enlace en esta publicación.
podeis ver para que sirve.

 

Ejemplos:

<?php

//Funcion sin argumentos
funcion();

//Funcion con un argumento
funcion( $arg );

//Funcion con varios argumentos
funcion( $arg1, $arg2, $arg3 );

//Función con argumentos más complejos
funcion( $arg1, 15.53, funcion2() );

?> 

 

 

4.1.2 Valores de retorno

Las funciones pueden devolver valores, o no, la mayoria de funciones que tiene PHP por defecto devuelven valores, excepto aquellas (pocas) que no es necesario que lo hagan.

 

Devolver un valor, en PHP, tampoco implica necesariamente que se vaya a usar, podemos llamar una funcion que devuelve un valor y no almacenarlo ni usarlo en ningún lado.

<?php

/* ceil es una funcion que recibe un argumento y retorna un valor
* ceil sirve para redondear un numero hacia arriba, por tanto recibe un número y devuelve otro
*/

ceil(12.5);//Aquí el valor devuelto no se usa, no pasa nada, ni errores ni nada
$var = ceil(12.5); //ceil(12.5) vale 13, por tanto, $var vale 13

?> 

 

4.2 Funciones, como crearlas

 

 

También podemos crear funciones própias, requiriendo los argumentos que deseemos y devolviendo los valores que queramos.

La sintaxis es fácil:

<?php

/*
Sintaxis para crear funciones:
function <nombre de la funcion>( <argumentos separados por comas> )
{
   <código de la funcion>
}
*/


//Por ejemplo
/**
* Suma todos los numeros desde $inicio hasta $final
* Ejemplo: sumatorio(1, 4) = 1+2+3+4 = 10 
*/

function sumatorio($inicio, $final) {
   //Si el inicio es menor que el final se puede ejecutar bien la funcion
   if ( $inicio <= $final ) {
      $suma = 0;
      for ( ; $inicio<=$final ; $suma+=$inicio, $inicio++);
      return $suma;
   }
   else {//Sinó la llamamos cambiando el final por el inicio
      //Ésto devuelve lo que devuelve la función con los argumentos cambiados.
      return sumatorio($final, $inicio);
   }
}

echo sumatorio(1,4); //10

?> 

 

 

 

4.2.1 Argumentos

 

 

Como ya hemos visto en el ejemplo, podemos requerir argumentos en nuestras funciones o no, también existe la posibilidad de dar valores por defecto a nuestros argumentos para, luego, al usar (llamar a) las funciones omitir ese argumento, por ejemplo:

<?php

/**
* Ejemplo de función sin argumentos
* Link a la referencia de la funcion date:
* 
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
*/ //Devuelve un string con la horaen el siguiente formato HH:MM:SS function hora() { return date("H:i:s"); } /** * Ejemplo de función con argumentos */ //Devuelve true si $dividendo puede ser dividido por $divisor, o false en caso contrario function divisible($dividendo, $divisor) { return ($dividendo%$divisor) == 0; } /** * Ejemplo de función con argumentos con valores por defecto */ function saludar_a($nombre = false) { if ($nombre == false) { echo "Lo siento no te conozco"; } else { echo "Hola {$nombre}"; } } saludar_a();//Lo siento no te conozco saludar_a("Jose");//Hola jose ?> 

 

 

 

4.2.2 Valor de retorno

 

 

Como ya hemos visto las funciones pueden tener un valor de retorno, éste valor puede ser almacenado en una variable, usado como argumento de otra función, como parte de una expresión lógica para un if, etc...

 

Si intentamos asignar a una variable el resultado de una función que no devuelve nada, ésta valdrá NULL

 

Para devolver un valor escribimos la sentencia:

return <expresion>;

Donde expresión es cualquier cosa que se pueda evaluar a un valor, por ejemplo: una variable, una llamada a una función, o un valor directamente.

<?php
//Ejemplos de returns

return "a";

return (2*12);

return time();

return true;

return $var;
?> 

Cuando se ejecuta la sentencia return, se finaliza la ejecución de la función, es como el break en los bucles.

 

 

 

4.3 Ámbito de variables y variables estáticas en funciones

 

 

El cacho de codigo que ocupa la definición de una función o un método se dice que tiene ámbito local.

El resto de código se dice que tiene ámbito global.

 

Básicamente esto solo sirve para saber si una variable es accesible o no, es muy fácil:

- Desde ámbito global es imposible acceder a ningún ámbito local de ninguna función o método.

- Desde ámbito local se puede acceder a variables globales solo si se "importan",

. no se puede acceder a variables locales de otras funciones o métodos

 

Las variables no se pasan como argumentos, al "pasarlas" por argumentos a funciones, realmente estamos asignando su valor a una variable local de la funcion, por tanto si no se importa una variable global no se puede leer o modificar directamente.

 

Para "importar" una variable global dentro de una función se hace así:

global <variable>[, <variable 2>...];

 

Ejemplo :

<?php

$a = 0;

//Esta función importa $a para imprimirla en pantalla
leerA()
{
   global $a;
   echo 'Valor de $a:' . $a . '<br>';
}

//Esta funcién importa $a para modificarla
function sumarUno() {
   global $a;
   $a += 1;

}

// Esta funcion tiene de variable local $var,
// si se le pasa $a como argumento, solo pasamos el valor, no la variable
function sumarUno_($var) {
   $var += 1;
}




leerA();

sumarUno_($a); //$a no se modifica
leerA();

sumarUno(); //$a aumenta en uno
leerA();

sumarUno(); //$a aumenta en uno
leerA();

/*  Resultado:
Valor de $a: 0
Valor de $a: 0
Valor de $a: 1
Valor de $a: 2 
*/
?> 

Ejemplo 2:

<?php

funcion funcionEjemplo( $argumento )
{
   //$argumento es una variable local de la función
   echo "He recibido un argumento $argumento";
}

$var = "hola";

/**
* El valor del argumento $var, se copia a la variable local $argumento,
* $var no se puede leer ni editar dentro de la funcion
*/
funcionEjemplo( $var );


/** 
* Ahora el argumento se tiene que evaluar, el argumento se evaluará de la siguient manera
* $var . " que pasa?"  -->  "hola" . " que pasa?" --> "hola que pasa?"
* por tanto $argumento valdría "hola que pasa?"
*/
funcionEjemplo( $var . " que pasa?" );
?> 

 

 

 

 

4.4 Arrays (vector o lista)

 

 

Los arrays, también los podemos llamar vectores o listas, son una estructura de datos que nos permite almacenar datos en una sola variable.

 

Imaginense una oficina de correos donde cada apartado de correos tiene un número y su contenido es la correspondencia.

Pues un array es muy parecido:

Tenemos un número que identifica un "contenedor" y el contenido.

<?php

//Creamos un array vacio
$array = array();

//Llamaremos al "apartado de correos" el índice del array
//Y al "contenido de ese apartado" el valor de ese índice

//Por defecto los índices comienzan en 0 y aumentan de 1 en 1 según añadimos elementos
//Para acceder a un índice se pone $array[<indice>]
//Si no se especifica ningún índice se usará el primer índice que no se ha usado

$array[] = "Facturas";//Esto se guardaría en el índice 0 por que no se ha usado antes
$array[3] = "Propaganda";//Se guarda en el índice 3
$array[] = "Citación judicial";//Se guarda en el índice 4 por que es el siguiente al 5 que no se ha usado

/* Así nuestro array ahora mismo estaría así:
* Índice 0: "Facturas"
* Índice 1: null
* Índice 2: null
* Índice 3: "Propaganda"
* Índice 4: "Citación judicial"
*
* No pasa nada por saltarse índices,
* porque obviamente las posiciones vacias no se almacenan en memoria
*/

//También podemos usar texto (y combinarlo con numeros) para los indices
// Cuando usemos $array[] funcionará igual, si no hay ningún indice numerico
// Empezará por el 0, y sinó por el siguiente al último usado.
$array["secreto"] = "Sobres con dinero negro";
$array[] = "Paquete de amazon";//indice 5

?> 

Hay muchísimas funciones y construcciones del lenguaje para trabajar con arrays, las más útiles:

<?php
//Array de ejemplo, se pueden insertar elementos así:
$array = array("a", "b", "c", "d", "e");

//O también así si queremos especificar el índice:
$array2 = array("a" => "Avestruz", "b" => "Basilisco", "c" => "Cocodrilo");


//Podemos saber cuantos elementos tiene un array usando count()
$numeroDeElementos = count($array);//El resultado es 5

/* Podemos recorrer un array con el bucle foreach, tiene las siguientes dos sintaxis:
* foreach (<array> as <valor>) {
*    <codigo>
* }
* 
* foreach (<array> as <indice> => <valor>) {
*    <codigo>
* }
*
* Adicionalmente podemos anteponer un & al <valor> para poder modificarlo directamente
*/
echo 'Valores de $array: { ';
foreach ($array as $valor) {
   echo $valor . " ";
}
echo "};
//Resultado: "Valores de $array: { a b c d e }

?> 

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

 

 

5. Interaccion con el cliente

 

 

Las formas de enviar y almacenar datos desde el cliente al servidor y viceversa son muy sencillas.

Por un lado tenemos el envio de información por parte del cliente, cosas tan sencillas como enviar nuestro usuario o contraseña, o el número de página que queremos ver...

Por otro lado tenemos el envio de información del servidor a el cliente, ya sea para enviar la web, o para enviar datos asíncronos a jquery por ejemplo.

Luego tenemos el tema de almacenar información, podemos almacenar información de varias formas en el servidor, y de una forma en el cliente.

En el servidor podemos almacenar en bases de datos (mysql etc.), archivos y en las sesiones.

En el cliente podemos almacenar datos en forma de cookies, como estas se pueden modificar solo se usan para cosas que no son sensibles, por ejemplo para saber que skin quiere un usuario de un foro, o para saber que lenguaje usó la ultima vez que visitó la web.

 

 

5.1 Recibir datos del cliente

 

 

Desde un cliente web se envian al servidor, a parte de la URL, varios datos como las cookies que ya están almacenadas en el cliente, o cabeceras para conocer al cliente (qué navegador y sistema usa, localización etc.)

Se usan los formularios para enviar datos al servidor, y las cookies, que se envian en cada petición al servidor, para almacenar datos en el cliente.

 

 

5.1.1 Formularios

 

 

Se usan los formularios para enviar datos al servidor con dos métodos distintos: GET y POST

La información siempre viaja de la forma clave=valor

 

Con GET los datos se codifican en la URL, por ejemplo:

web.com?modo=registrar&nombre=tiki&pass=abc123

 

Estariamos enviando 3 "variables":

modo = registrar

nombre = tiki

pass = abc123

 

Para acceder a estas variables en PHP es muy fácil, basta con acceder al siguiente array:

$_GET[<clave>]

 

Donde <clave> es un string (cadena de caracteres), así se accedería de la siguiente manera:

<?php
$_GET["modo"]
$_GET["nombre"]
$_GET["pass"]

Para el método POST desde php es casí igual solo que usando $_POST[<clave>], y para enviar la información se hace a través de los formularios, en el HTML (realmente el navegador incluye los campos POST en la cabecera que se envia al servidor) o desde jquery...

 

ejemplo de código:

<?php

if (isset($_POST["modo"]) {
  $modo = $_POST["modo"];
}
else {
  $modo = "defecto";
}

if (isset($_POST["usuario"]) {
  $usuario = $_POST["usuario"];
}
else {
  $usuario = "";
}

if (isset($_POST["pass"]) {
  $pass = $_POST["pass"];
}
else {
  $pass = "";
}

if ($modo == "registrar") {
  registrar($usuario, $pass); //Funcion que me acabo de inventar
}
?>
<html>
  <!-- Nombre de archivo index.php -->
  <head></head>
  <body>
    <form action="index.php" method="POST">
      <input type="hidden" name="modo" value="registrar"/>
      <input type="text" name="nombre" value="Nombre"/>
      <input type="password" name="pass" value="******"/>
      <input type="submit" value="enviar"/>
    </form>
  </body>
</html> 

 

 

 

Proximamente:

5.1.2 Cookies

5.2 Almacenar datos

5.2.1 Sesiones

5.2.2 Base de datos (u otro formato)

 

6. PHP Avanzado

6.1 Operador ternario

6.2 Arrays multidimensionales

6.3 Variables variables

6.4 Excepciones

 

7. Programación orientada a objetos

7.1 Clases y objetos, metodos y propiedades, estático o no etc.

7.2 Herencia de clases

7.3 Clase abstracta (esa clase que solo la quieres para que hereden de ella)

7.4 Interfaces (estas son quienes te dicen lo que debes hacer)

 

26 de mayo: comienzo interaccion con el cliente

Edited by darkarrow_ayora
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...