Mostrando entradas con la etiqueta aprender PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta aprender PHP. Mostrar todas las entradas

miércoles, 17 de julio de 2013

Un formulario de contacto en HTML y PHP

Un formulario de contacto en HTML y PHPValencia, 17/07/2013, G.B.
Aunque un tanto 'alejado' de la 'marcha' habitual de Aprendiendo PHP antes de su parada, voy a seguir incluyendo pequeñas 'utilidades', códigos que os pueden servir. Más adelante volveré con la 'temática', el orden que he pensado seguir en este blog. Pero ahora mismo, y tras el re-arranque la semana pasada de Aprendiendo PHP, me apetece ir por este camino, aunque un poco más adelante vuelva a la 'normalidad'.

Sin más, paso a dejaros un pequeño sistema de formulario de contacto con HTML y PHP. Consta de 3 archivos, uno en HTML y 2 en PHP:

  • contacta.html (la página del formulario propiamente dicha)

  • enviar_correo.php (el código PHP del formulario)

  • enviado.php (la página que nos indica si ha habido algún error o todo ha ido bien)

jueves, 25 de octubre de 2012

Instrucciones iterativas en PHP (II): bucles Foreach (I)

Estructuras de control de flujo en PHP

Valencia, 25/10/2012, G.B.
La siguiente instrucción iterativa en PHP que vamos a ver es el bucle foreach. Foreach nos permite iterar o 'enunciar' cada elemento de una matriz, vectorarray. En otras palabras, nos permite 'recorrer' todos los datos de una matriz, array o vector.

La diferencia entre el bucle For y el bucle Foreach es que cuando se utiliza el bucle foreach se ejecuta todo lo que está escrito en la instrucción iterativa, sin tener en cuenta ningún contador. En cambio, al utilizar el bucle for, se realizan las instrucciones un determinado número de veces, dependiendo del contador: "hazlo X veces".  Así, en las instrucciones foreach no se pueden producir errores, siempre y cuando estén bien escritas, claro.

El bucle foreach tiene dos usos:
1) Mostrar todos los datos de un array
2) Mostrar un valor concreto del array

La sintáxis de foreach del primer uso (1), para recorrer y mostrar todos los datos de la matriz o  array es:

identificador de la matriz o vector; expresión con el operador 'as'; variable que identifica cada uno de los elementos de la matriz; sentencias o instrucciones a realizar:


lunes, 1 de octubre de 2012

Instrucciones iterativas en PHP: bucles For

Estructuras de control de flujo en PHP


Valencia, 02/10/2012
El lenguaje PHP dispone también de un tipo instrucciones llamadas iterativas o de repetición 'heredadas'  del lenguaje C. Son los conocidos 'bucles', instrucciones que realizan una determinada acción un número determinado de veces que se especifica a través de un contador. Es como si diéramos cuerda a una instrucción para que se realice hasta que finalice el contador que hemos especificado, el 'paso', por llamarlo de algún modo. Se llaman bucles porque se repiten hasta que la condición deja de cumplirse, o lo que es lo mismo, se evalúa como falsa (FALSE).


Las instrucciones iterativas o bucles en PHP son las siguientes:




Veamos la primera de ellas, las  instrucciones o bucles for. Su sintaxis es la siguiente:


for ([Inicialización de la variable] ; [Condición] ; [Incremento o decremento de la variable])
{
[Instrucciones];
}


O como lo explica el portal oficial PHP.net:


for (expr1; expr2; expr3) sentencia


Veamos algunos ejemplos prácticos para entenderlo mejor:

viernes, 28 de septiembre de 2012

Estructuras de control en PHP IV: el operador ternario

[Control de flujo o estructuras de control en PHP VI] Operador Ternario


Valencia, 28/09/2012, G.B.
Como os comenté en el anterior post, para finalizar con las instrucciones condicionales en PHP, vamos a conocer ahora el denominado  operador ternario. En realidad, no es una nueva clase de instrucción condicinal, sino una forma distinta de representar las instrucciones condicionales if/else, pero utilizando menos  líneas de código, por decirlo de algún modo.


Toma el nombre de ternario porque utiliza 3 argumentos; tiene tres partes definidas: (PARTE1) ? (PARTE2) : (PARTE3);




  • La primera parte es la condición o expresión que incluye la variable

  • La segunda el resultado de esa condición o expresión si el valor de la variable es verdadero (TRUE), cuando la condición se cumple.

  • La tercera parte es el valor o expresión si el resultado es falso (FALSE), cuando no se cumple la condición


Sintaxis del operador ternario:

$NombreVariable = (condición) ? sentencia1-cuando-se-cumple : sentencia2-cuando-no-se-cumple;
Si utilizamos alguna instrucción o expresión como por ejemplo echo, la sintaxis sería:
echo ($NombreVariable = (condición)) ? sentencia1-cuando-se-cumple : sentencia2-cuando-no-se-cumple;


Otra forma de representarlo sería como lo hace la Wikipedia (añadiendo el punto y coma final de la expresión):

expresión boleana ? valor si cierto : valor si falso;
ó
variable = condición ? valor si es cierto : valor si es falso;


 Como podemos observar se constituye de (PARTE1) ? (PARTE2) : (PARTE3); que significa (CONDICIÓN) ? (RESULTADO1) : (RESULTADO2); También podemos representarlo así:
INSTRUCCIÓN (CONDICIÓN) ? (RESULTADO-SI-SE-CUMPLE) : (RESULTADO-SI-NO-SE-CUMPLE);

jueves, 27 de septiembre de 2012

Estructuras de control en PHP V: instrucción switch

[Control de flujo o estructuras de control en PHP V] Instrucciones Switch


Valencia, 27/09/2012, G.B.
Tras haber conocido ya las estructuras condicionales en PHP con if, if/else y if/elseif/else, pasamos ya a la última: la estructura switchYa sabemos que las sentencias o estructuras condicionales se utilizan para realizar distintas acciones basadas en diferentes condiciones. Switch actúa de la misma manera que lo hace la estructura if/elseif/else, pero permite simplificar el código cuando las condiciones o posibilidades son muchas.


La expresión o variable que va después de la palabra reservada switch se evalúa utilizando la palabra case (caso en inglés) seguida de dos puntos. Si hay un equivalente, una coincidencia, se ejecutará la sentencia tras 'case'. En caso contrario, se sale de la instrucción utilizando la palabra reservada break y se pasa al siguiente 'caso' o case, en donde se evaluará la siguiente sentencia,  y así hasta llegar a un case en el que se cumpla.  En el caso de que no se cumple ninguna de las equivalencias presentadas tras cada uno de los 'case', es decir, en el caso de que no haya ninguna equivalencia, se puede utilizar una instrucción por defecto representada por la palabra default, también  seguida de dos puntos. La estructura condicional switch está 'encerrada' entre brackets { }.


Pero mejor veamos una representación de la sintaxis de switch:


switch ($nombreVariable) {
case valor1:
      (sentencia1);
      break; // salida que se utiliza opcionalmente
case valor2:
      (sentencia2);
      break;
case valor3:
      (sentencia3);
      break;
case valor4:
      (sentencia4);
      break;
case valor5:
      (sentencia5);
      break;
defaulf:
      (sentencia o instrucción predeterminada); // esta se ejecutará en caso de que ninguna de las equivalencias anteriores se cumpla
}


lunes, 24 de septiembre de 2012

Estructuras condicionales en PHP IV: If... elseif... else

[Control de flujo o estructuras de control en PHP IV] Instrucciones IF/Elseif/Else


Valencia, 24/09/2012, G.B.
Tras las estructuras condicionales o de control de flujo if y if... else, ahora toca el turno a la siguiente: if... elseif... else. Con elseif añadimos más posibilidades, más alternativas.


Elseif (también escrito else if, aunque menos frecuentemente) es una combinación de if y else y una ampliación de if. Si la condición contenida en el if es falsa (FALSE, que no se cumple), entonces el control de flujo saltará al primer elseif. Si éste tampoco se cumple, pasaría al siguiente, hasta llegar a un elseif en que la condición sí se cumpliera, que fuera verdadera (TRUE). En el caso de que no se cumpliera ninguno de los elseif, pasaríamos por último al else para ejecutar las sentencias contenidas en el mismo.


Como observamos, las estructuras elseif pueden anidarse, es decir, ir abriendo distintas posibilidades si no se cumplen las anteriores. La sintaxis es la siguiente:

if (condición1) {
sentencia1; // Si esto no se cumple, saltamos al primer elseif
}

elseif (condición2) {
sentencia2;
}
 // Tras esta línea pueden ir anidados más elseif
else {
sentencia3; // Si ninguno de los elseif se han cumplido, se ejecutará estas sentencias
}


En caso de que la primera condición, la del if, no se cumpla, pasamos al primer elseif. Si este tampoco se cumple, pasaríamos al siguiente, hasta llegar al else, en caso de que no se cumpliera ninguno de ellos. Veamos un pequeño ejemplo:



<?php
$numero1 = '2';
$numero2 = '3';
$numero3 = '4';
$numero4 = '2';
if ($numero1 == $numero2) {
print "El $numero1 es igual al $numero2.";
}
elseif ($numero2 == $numero3) {
print "El $numero2 es igual al $numero3";
}
elseif ($nunero3 == $nunero4) {
print "El $numero3 es igual al $numero3";
}
else {
print "El $numero1 es igual al $numero4.
¿Lógico, no?";
}
?>

Ejecutar ejemplo


domingo, 23 de septiembre de 2012

Estructuras condicionales en PHP III: if...else

[Control de flujo o estructuras de control en PHP III] Instrucciones IF/Else

Valencia, 23/09/2012, G.B.
Como hemos visto en el anterior post sobre instrucciones If sencillas, esta estructura condicional puede que no nos sea suficiente para lograr nuestro objetivo. Así, en el ejemplo anterior, se muestra un mensaje si abrimos la página después de las 07:00 a.m. (después de las siete de la mañana). ¿Y si queremos ajustar más el margen y mostrar mensajes distintos en franjas horarias distintas,  más 'pequeñas'? Pues que entonces tendremos que utilizar alguna de las tres construcciones o estructuras condicionales siguientes: if/else; if/elseif/else; switch. Vamos a ver ahora las estructuras condicionales if...else en PHP.
El bloque if/else es una decisión en dos direcciones. Si la expresión o condición if es verdadera (TRUE), se ejecutará el bloque se sentencias o expresiones. Si la expresión o condición es falsa (FALSE), se ejecutará en su lugar las sentencias o expresiones del bloque else. La sintaxis es la siguiente:

if (expresión)
{

   sentencias1;
}
   else {
   sentencias2;
}


sábado, 22 de septiembre de 2012

Estructuras condicionales en PHP II: instrucciones If sencillas

[Control de flujo o estructuras de control en PHP II] Instrucciones IF


Valencia, 22/09/2012, G.B.
Como os comentaba en el anterior post, la primera parte de Control de flujo o estructuras de control en PHP, vamos a explicar ya la primera clase de ellas, las estructuras o instrucciones condicionales en PHP. Como bien indica su nombre, las instrucciones condicionales permiten determinar las acciones a realizar en función de una condición o condiciones.  Son las siguientes:




La más sencilla de ellas es la instrucción If  ('si' condicional en inglés) y se representa de las siguientes formas:


if (condición)
acción;


o lo que es lo mismo:  

if (expresión)
    {
     (sentencias);
    }

Donde vemos condición podemos llamarlo expresión y donde leemos acción, podemos llamarlo sentencias, ¿de acuerdo? 

sábado, 23 de junio de 2012

Introducción  a las sentencias If


Valencia, 23/06/2012, G.B.
Ya sabemos un poco más sobre PHP, pero hay algo muy importante que hemos dejado de lado hasta ahora: me refiero a las estructuras de control de flujo o estructuras condicionales. ¿Y qué son? Todo lenguaje de programación dispone de este tipo de estructuras que nos permiten 'ir hacia un sitio u otro', conseguir un resultado u otro dependiendo del contexto, de la interacción con el usuario o con una variable. Así, podemos decidir qué hacer o qué respuesta dar dependiendo de las posibles condiciones, es un flujo de causa-efecto, por decirlo de algún modo: causa 1: efecto uno,  consecuencia o respuesta uno; causa 2: efecto, consecuencia o respuesta 2, y así indefinidamente, dependiendo de la versatilidad o complejidad de la estructura de control que necesitemos programar para nuestra página web. Con ello, damos cierta interactividad y versatilidad a nuestras páginas.


Así, podemos decir que las sentencias o estructuras condicionales se utilizan para realizar distintas acciones basadas en condiciones diferentes.




Todo script PHP está construido en base a una serie de sentencias. Una sentencia puede ser una asignación, una llamada de función, un ciclo, una sentencia condicional o incluso una sentencia que no hace nada (una sentencia vacía). Las sentencias generalmente finalizan con un punto y coma. Adicionalmente, las sentencias pueden agruparse en un conjunto de sentencias, encapsulándolas entre corchetes. Un grupo de sentencias es una sentencia por sí misma también.
Fuente: http://www.php.net/manual/es/control-structures.intro.php



Las estructuras de control son por tanto secuenciales, siguen un flujo. Veámoslo con un clásico ejemplo (en este primer post todavía sin código):



sábado, 17 de marzo de 2012

Más sobre las matrices en PHP: tipos de arrays

[Matrices en PHP II]


Valencia, 17/03/2011, G.B.
Ya hemos hablado sobre las matrices en PHP pero de una forma muy general. Con las matrices realmente podemos hacer muchas cosas, que ya iremos viendo y descubriendo (yo me incluyo).


Ahora lo que vamos a ver son los distintos tipos de matrices. He basado este post en un tutorial de Webtaller.com. En los 'créditos', al final de este post, adjunto el enlace.  Otro interesante enlace al respecto es el siguiente: www.php-es.com/language.types.array.html. Ahora, vamos 'al tajo'.

Podemos diferenciar entre los dos tipos de matrices existentes:


- Indexada: Son las matrices cuyo acceso a los elementos se realiza por la posición que ocupan dentro de la estructura (empezando siempre desde el cero). Ejemplo: $tipos_matrices[0]
- Asociativa: Matriz en la que los elementos están formados por pares clave-valor y el acceso se realiza proporcionando una determinada clave. Ejemplo: $tipos_matrices['asociativa']


Retomo Aprendiendo PHP en breve...

Valencia, 17/03/2012, G.B.
Tras una pausa, larga, larga, muy larga, he decidido retomar este blog, Aprendiendo PHP. La verdad es que no ha sido mi intención dejarlo, pero las circunstancias ha mandado. Pero creo que ya es el momento de volver a este proyecto personal que me hace mucha ilusión, aunque no me dé más que eso, ilusión...; bueno, aprender es algo que siempre me ha gustado, que siempre he buscado y que sigo buscando. No creo en las cosas acabadas, porque, como su propio atributo indica, están finiquitadas y no pueden continuar.


Este proyecto es, desde su inicio, algo inacabado, algo que tiene que continuar para poder darle sentido. Esa es mi intención. Por todo ello, y porque me apetece, en unos días -tal vez menos- volveré a 'la carga' con Aprendiendo PHP.  Porque lo importante es aprender, continuar, seguir en el camino, a pesar de las dificultades, a pesar del desánimo que muchas veces, con o sin razón, nos embarga. Desde aquí me animo a mi mismo a seguir en la brecha.


Muchas gracias por vuestro interés y paciencia.


Un saludo,


Guillermo

domingo, 27 de noviembre de 2011

Matrices en PHP (I)


Ya casi ni me acuerdo de lo que es PHP, tras más de un mes sin 'tocar' este blog. Circunstancias, circunstancias, malditas circunstancias...


Valencia, 27/11/2011, G.B.
Hace algún tiempo os comentaba que el próximo post iba a ser sobre las matrices en PHP, un tipo de variables muy importante en programación. Bien, ha llegado el momento. Allá voy.

Una matriz es un tipo de variable que representa a un conjunto de datos a los cuales se puede acceder individualmente a través de su índice u ordenación.  Su nomenclatura oficial es array. Así, los arrays nos permiten asignar más de un valor a una sola variable para luego recuperar cualquiera de sus valores a través de su ordenación o índice. Resaltar que el primer elemento de una matriz o array es el cero (0), a no ser que indiquemos lo contrario.

Bueno, tras esta descripción bastante teórica, vamos a empezar a ilustrar el concepto con un ejemplo. Imaginemos que queremos guardar en variables el número de libros que hemos leído durante el pasado año, si somos buenos lectores, claro:



<?php
$libros_enero = 1; // poco, has leído poco, amiguito
$libros_febrero = 2; // el doble que el mes anterior, no está mal
$libros_marzo = 4; // Otra vez el doble. Muy bien!
$libros_abril = 5; // Aumentamos pero ñlo que no puede ser, no puede ser
$libros_mayo = 6; // Idem del mes anterior
$libros_junio = 7; // Bien, seguimos creciendo en sabiduría...
$libros_julio = 1; // Uy, aquí hemos caído. 'Back to square one'
?> 


Una vez declaradas todas las variables, podríamos utilizar el siguiente código para recuperar los valores de cada una de ellas. Vamos a utilizar primero las cadenas de bloque que ya hemos visto:


<?php
echo <<< LIBROS

Número de libros que he leído:
- En enero: $libros_enero <br />
- En febrero $libros_febrero <br />
- En marzo $libros_marzo <br />
- etc., etc... <br />
LIBROS;
?> 

El resultado será el siguiente texto:

- En enero: 1
- En febrero: 2
- En Marzo: 4
- etc., etc...

domingo, 23 de octubre de 2011

Valencia, 23/10/2011, G.B.
Bueno, como podréis observar, no he cumplido mi promesa y ese blog ha quedado bastante abandonado. Aparentemente no tengo excusas, pero os puedo asegurar que sí las hay, mejor dicho, en plural: las hay... Pero eso es 'harina de otro costal'. De todas formas, eso no implica que no pueda darle un poco de 'aire' a este blog, Aprendiendo PHP, mientras solvento unos cuantos asuntillos pendientes. Eso casi ha sonado a 'mafioso', pero no lo es, os lo aseguro también.


Y ahora al grano: ese ¡aire' que os anuncio es la creación de un directorio de enlaces propiamente dicho sobre recursos para PHP y una nueva sección que muy probablemente llevará mi compadre gatsu, el cual ya colabora conmigo de vez en cuando en Knowhow, aunque no tan habitualmente como quisiéramos ambos, por motivos obvios de tiempo. Bien, esa nueva sección se denominará 'El rincón de gatsukito' y tratará sobre temas concretos de PHP, saltando la rigidez que yo me he auto-impuesto en este blog: empezar desde el principio. Así, los lectores de este abandonado blog dispondrán de material fresco que no sea dependiente d ela 'cronología' u hoja de ruta de Aprendiendo PHP. Casi pudiéramos decir que será un blog dentro de un blog, algo que siempre me ha gustado, debo reconocer...


Ahora queda concretar tiempos y disponer de los mismos, pero casi puedo aseguraros que la idea ya está en marcha, ahora sólo hay que 'cuajarla'. Y aquí dejo esta breve nota, casi justificación. Buenas noches.


P.D. Se me olvidaba: el próximo post sí que será sobre las matrices en PHP. Prometido!

sábado, 24 de septiembre de 2011

Funciones en PHP (I): una introducción


Ante todo pediros disculpas por no haber podido actualizar este blog en casi dos semanas. No tengo excusa, la única es que son demasiadas cosas, demasiados blogs, demasiado trabajo... Intentaré robar tiempo al tiempo para escribir más a menudo en este blog, Aprendiendo PHP. Esa es mi intención. Y ahora, al tajo...



Las funciones son una parte muy importante en cualquier lenguaje de programación y PHP no es una excepción a ello, ni mucho menos! Definimos primero qué es una función: una función es como una pieza independiente del programa, una 'entidad' de código que está diseñada, mejor dicho, programada para realizar una determinada acción, como por ejemplo,  devolvernos la fecha del sistema. No es necesario que conozcamos 'sus tripas', el código que la conforma. Simplemente debemos saber para qué sirve y cómo llamarla.


En posts anteriores de Aprendiendo PHP ya hemos visto y utilizado algunas de ellas, como la función que he comentado en el párrafo anterior, la que nos devuelve la fecha y la hora de nuestro sistema: la función date(). Una función puede o no devolver un resultado, operando sobre unos valores, a los cuales denominamos argumentos o parámetros. Se construye con una palabra reservada del lenguaje seguida de paréntesis, los cuales pueden ir vacíos o con una enumeración de argumentos o parámetros, separados por comas. Posteriormente esos argumentos pueden sustituirse por los valores que queramos, siempre y cuando sean del mismo tipo de datos. Por cierto, nos queda pendiente el tema sobre el cambio de tipo de datos, lo sé...


domingo, 11 de septiembre de 2011

Concatenación de cadenas en PHP

[Operadores en PHP (V)]


La concatenación de cadenas o unión de strings en PHP se realiza mediante un punto (.): $texto= $texto2.$texto3. Ya hemos visto un ejemplo en el anterior post sobre los operadores de incremento y decremento. Así, el operador de concatenación es un punto entre cada una de las cadenas de texto -o variables que las representen- que queramos unir. La mejor forma de ver la concatenación de cadenas o strings  es con unos cuantos sencillos ejemplos:



<?php
$texto1= 'Esto es';
$texto2= 'un string o cadena de texto';
$texto3=$texto1.' '.$texto2; // unimos las dos variables con el operador de concatenación: un punto y escribimos un espacio en blanco entre comillas simples para separar las dos frases
echo $texto3;
?>

También podemos incluir el espacio en blanco en la segunda cadena de texto ($texto2):

<?php
$texto1= 'Esto es';
$texto2= ' un string o cadena de texto'; // el espacio en blanco entre las dos cadenas lo escribimos directamente en el valor de $texto2
$texto1=$texto1.$texto2;
echo $texto1;
?>

Si tenemos una cadena en una variable y la otra no, lo mostraríamos de la siguiente forma:

<?php
$texto1= 'Esto es una cadena de texto. '; // dejo un espacio en blanco después del punto de la frase
$texto2=$texto1 .'Y esta es la cadena de texto sin variable';
echo $texto2;
?>
Ver ejemplo

En el código del ejemplo he querido utilizar código HTML para devolver el resultado en negrita (tags <b></b>): echo "<b>$texto1</b>"; Si lo hubiéramos escrito entre comillas simples, simplemente hubiéramos obtenido el texto literal $texto3, sin haberse interpretado la variable. Por ello, debemos tener siempre muy en cuenta que si queremos interpretar código dentro de la variable, tenemos que utilizar comillas dobles. Os dejo un recordatorio sobre la diferencia entre las comillas simples y las dobles en PHP:




  • Las variables no se escriben entre comillas

  • Si no vamos a utilizar variables dentro de la expresión, es mejor utilizar comillas simples, ya que devuelven el valor literal, sin interpretar nada

  • En el caso de que queramos recuperar el valor de una variable dentro de un texto, utilizaremos comillas dobles

  • Las comillas dobles indican que el contenido de la expresión debe ser interpretado



Enlaces recomendados:

http://www.mclibre.org/consultar/php/lecciones/php_cadenas1.html
http://www.tuwebdeinformatica.com/Crearwebs/php_mysql/variables_php.html
http://www.ignside.net/man/php/strings.php
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_PHP/Cadenas

jueves, 1 de septiembre de 2011

Operadores de incremento y decremento en PHP

[Operadores en PHP (IV)]


Retomando los operadores aritméticos, vamos a ver en este post un tipo de operadores directamente relacionados con ellos: los operadores de incremento y decremento. Y la mejor forma de empezar es con un ejemplo:



<?php $a= $a + 1; $b= $b -1; ?>

Este mismo código expresado con los operadores de incremento y decremento se escribe así:



<?php $a++; // dos signos más (+) seguidos $b--; // dos signos menos (-) seguidos ?>

Lo más significativo es que hemos eliminado el operador de asignación, el símbolo igual (=), y hemos sustituido el nombre de la variable que se suma o resta por un signo más (+) o menos (-), respectivamente. Así, $a++; (++ es el operador de incremento) es lo mismo que $a= $a + 1; y b$--; es lo mismo que b$= $b - 1; (-- es el operador de decremento).


martes, 30 de agosto de 2011

Operadores lógicos en PHP

[Operadores en PHP (III)]


Los operadores lógicos, al igual que los aritméticos, devuelven valores booleanos, es decir, TRUE (1) o FALSE (0). Los principales operadores lógicos son los siguientes: AND, OR, XOR y NOT. Se utilizan para evaluar comparaciones entre dos valores. Los signos que los representan son:




  • AND: && Significa y. También se representa por and

  • OR: Se representa por or. Significa o (y/o).También se representa por ||

  • XOR: Se representa por xor. Significa o exclusiva

  • NOT: Se representa por el signo ! Significa no de negación


Un resumen con pequeños ejemplos::








































EjemploNombreResultado
$a and $bAND (Y)TRUE si $a y $b son verdaderos
$a or $bOR (O)TRUE si $a o $b son verdaderos
$a xor $bXOR (O exclusiva)TRUE si $a es verdadero o $b es verdadero, pero no ambos a la vez
! $aNOT (NO, negación)TRUE si $a no es verdadero.
$a && $b(AND) YTRUE si tanto $a como $b son verdaderos
$a || $b(OR) OTRUE si $a o $b son verdaderos

- and: Es un operador binario (se aplica a dos varibles) y sólo devuelve TRUE si los dos valores sobre los que actúa o realiza la operación son TRUE (1). Se representa por && o and. Las posibles combinaciones y sus resultados son:




























$a$bResultado
TRUETRUETRUE
FALSETRUEFALSE
TRUEFALSEFALSE
FALSEFALSEFALSE

- or: El operador not, a diferencia de and, sólo da como resultado FLASE (0) si las dos variables sobre las que actúa son FALSE. En el resto de casos, nos dará como resultado TRUE (1). Las posibles combinaciones son:




























$a$bResultado
FALSEFALSEFALSE
TRUEFALSETRUE
FALSETRUETRUE
TRUETRUETRUE

- xor (u operador exclusivo): Sólo devuelve TRUE cuando los dos valores son distintos:




























$a$bResultado
TRUETRUEFALSE
FALSETRUETRUE
TRUEFALSETRUE
FALSEFALSEFALSE

not: Este operador, a diferencia del resto,  es un operador unario. Esto significa que se aplica a una sola variable.
Ejemplo: ! &a: El valor es TRUE si la variable a no es cierta.

Para poder ver 'en acción' estos operadores, nos esperaremos a ver las estructuras de control. Ya queda menos...

Más información sobre los operadores en PHP:
- http://www.ignside.net/man/php/operadores.php (ignside.net)
http://php.net/manual/es/language.operators.logical.php (Manual PHP)
- http://www.webestilo.com/php/php03c.phtml (Webestilo.com)

sábado, 27 de agosto de 2011

Operadores de comparación en PHP

[Operadores en PHP (II)]

Tal y como comentaba en el anterior post, voy a continuar con los operadores en PHP. Vamos a ello:


Operadores de comparación
Los operadores de comparación se utilizan para comparar dos valores entre sí y de esta poder tomar una decisión por medio de las instrucciones de control que veremos más adelante.


El resultado de un operador de comparación es un valor denominado booleano (boolean), dependiendo si la comparación se satisface o no. TRUE si es verdadero y FALSE si es falso. Estos dos valores también pueden representarse por un cero (0) en el caso de FALSE y un 1 si la comparación da como resultado TRUE. Así, el cero siempre representa que la comparación no se cumple, es decir, que el resultado de la comparación es FALSE (falso). Resumiendo:
- cero (0) = FALSE
- uno (1)= TRUE (aunque creo que también podría representarse por cualquier otro número distinto de cero).

Para realizar ls comparaciones entre dos valores disponemos en PHP de los siguientes  valores:


== igual a
=== idéntico a
!= distinto de
<> distinto de (otra forma de representarlo)
!== no idéntico a
< mayor que
> menor que
<= menor o igual a
>= mayor o igual a















































OperadorDescricpción
$a == $bTRUE si $a es igual a $b
$a === $bTRUE si $a es idéntico a $b
$a != $b (también <>)TRUE si $a no es igual a $b
$a <> $bTRUE si $a no es igual a $b (otra forma de representarlo)
$a !== $b (también <>)TRUE si $a no es idéntico a $b
$a < $bTRUE si $a es menor que $b
$a > $bTRUE si $a es mayor que $b
$a <= $bTRUE si $a es menor o igual igual que $b
$a >= $bTRUE si $a es mayor o igual que $b


Veamos un ejemplo de los principales operados de comparación en PHP: 



<?php
$a = 1;
$b = 2;
$c = 3;
echo $a == $b," :Comparación 1 <br />";  //devuelve FALSE (0). Añadimos un pequeño código en HTML entre comillas dobles
echo $a != $b," :Comparación 2 <br />"; //devuelve TRUE (1)
echo $a < $b," :Comparación 3 <br />"; //devuelve TRUE (1)
echo $a > $b," :Comparación 4 <br />";//devuelve FALSE (0)
echo $a >= $c," :Comparación 5 <br />";//devuelve FALSE (0)
echo $b <= $c," :Comparación 6 <br />"; //devuelve TRUE (1)
?> Ver ejemplo

Si ejecutamos el ejemplo, la página HTML nos devolverá un 1 cada vez que no se cumple la comparación (FALSE) y un cero (0) o nada si se cumple (TRUE). Así, tendremos los siguientes valores como resultado de las comparaciones:


0 (FALSE) (no se mostrará nada): Comparación 1
1 (TRUE): Comparación 2
1 (TRUE): Comparación 3
0 (FALSE) (no se mostrará nada): Comparación 4
0 (FALSE) (no se mostrará nada): Comparación 5
1 (TRUE): Comparación 6

Tenéis más información al respecto en el siguiente enlace del manual de PHP: http://php.net/manual/es/language.operators.comparison.php. En el mismo se habla de la comparación entre distintos tipos de datos. Nosotros lo veremos con ejemplos más adelante.


En el próximo post estudiaremos los operadores de incremento y los lógicos, entre otras cosas.

jueves, 25 de agosto de 2011

Casi de vuelta de las vacaciones...


En el post anterior hemos visto una introducción a las variables en PHP. Ahora vamos a profundizar sólo un poco más y hablaremos de otra clasificación de sus tipos de datos, aunque dejaremos alguno de ellos por su importancia (como las matrices) para próximos posts, en dedicación completa.


Dividimos las variables en cuatro grupos: alfanuméricas, numéricas, matrices y objetos. Pero a efectos prácticos, podemos clasificar las variables en estos cinco tipos, los más usuales y, por lo tanto, con los que más vamos a trabajar en cuanto nos adentremos en las operaciones con variables:




  • Booleanos (booleans)

  • Enteros (integers)

  • Decimales (decimals)

  • Cadenas ( strings)

  • Matrices (arrays)


Booleanos
Una variable de tipo booleano puede tener dos valores posibles: verdadero o falso. Se representan en inglés: TRUE (verdadero) y FALSE (falso). Su correspondencia numérica es la siguiente: un cero para el valor FALSE y cualquier otro número distinto de cero (incluidos los números negativos) equivaldrán a TRUE. Por convención, se suele utilizar el 1 como TRUE aunque, repito, puede ser cualquier número.


Usualmente se usa algún tipo de operador que devuelve un valor booleano, y luego éste es pasado a una estructura de control. Ambas cosas las veremos más adelante, pero ahora mismo, para poder seguir explicando el tipo de dato booleano, es mejor que introduzcamos los operadores en PHP, aunque ya los hallamos utilizado en ejemplos anteriores.




"Un operador es algo que toma uno más valores (o expresiones, en jerga de programación) y produce otro valor (de modo que la construcción en si misma se convierte en una expresión)".
Fuente:
Manual oficial de PHP.net.



Existen varios tipos de operadores, pero el básico es el de asignación, y se representa por mediación de un símbolo igual "=".  Aunque en primera instancia podamos pensar  que es lo mismo que "igual a", en realidad lo que nos está indicando es que el operando de la parte izquierda toma su valor de el operando de la parte derecha, el que está tras el símbolo igual. A esta 'representación' la denominamos 'expresión de asignación', al asignar a una variable un tipo de dato, como ya hemos visto en varios ejemplos anteriores.


El valor de una expresión de asignación es el valor asignado. Es decir, el valor de "$numero = 118" es de 118.


Los enteros y decimales también los hemos tratado ya en el post anterior. Aunque podríamos hablar más sobre ellos (tal vez vuelva sobre ellos más adelante), vamos a pasar directamente a un tipo de variable muy utilizado e importante en PHP, las cadenas de texto o strings (en inglés):


Cadenas de texto (strings):
La mayor parte de la información que se 'maneja' e una página web es texto, cadenas de texto o strings. Una cadena de texto es simplemente una secuencia de caracteres, como el párafo que acabas de leer. Con el lenguaje PHP podemos definirlas de 3 formas distintas:




  • Con comillas simples

  • Con comillas dobles

  • En bloque


Como ya hemos tratado las dos primeras formas, vamos a ver ahora las Cadenas de texto en bloque. Las utilizamos para cadenas de gran longitud, es decir, textos largos. Veamos cómo con la denominada sintáxis heredoc:



<?php echo
<<<BLOQUE
<b>¡Hola mundo!</b>

Esto es una cadena en bloque.
Se mostrarán todas las líneas de texto
y no tengo que utilizar caractéres de escape.
Lo único que pasa es que todo este texto
se visualizará sin saltos de línea predeterminados.
Luego veremos un ejemplo
utilizando saltos de línea en una cadena en bloque.
BLOQUE;
?>
Ver ejemplo

lunes, 25 de julio de 2011

Sintáxis básica de PHP

La estructura de un archivo PHP

Ahora que ya sabemos qué es PHP y tenemos el entorno para usarlo, necesitaremos empezar a aprender a utilizarlo, saber cómo funciona este lenguaje de script. Y como todo lenguaje de script o guión, tiene su sintáxis, sus funciones, sus métodos, su forma de declarar las variables... Iremos paso a paso.


Como ya hemos comentado, el código de PHP puede embeberse perfectamente en el código HTML y se diferencia del mismo por las etiquetas <?php  ... ?> o su forma abreviada: <? ... ?>, de apertura y cierre respectivamente. Un ejemplo:




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo de código PHP</title>
</head>
<body>
<!-- Inicio de un comentario en HTML: Aquí insertamos el código PHP -->


<?php
echo "Esto es un script PHP"; ?>
</body>

</html>

Si la página tiene la extensión .php y la abrimos bajo un servidor PHP -como el de XAMPP si lo hemos instalado- el servidor nos devolverá una página con código HTML. El servidor web interpretará el código entre las etiquetas especiales de php y devolverá el texto Esto es un script PHP gracias a la función echo de PHP. Más adelante veremos las principales funciones de PHP. Si eres impaciente (yo también lo soy), visita la página oficial de PHP para conocerlas. Nosotros las trataremos un poquito más adelante, prometido, pero primero hablaremos de las variables y tipos de datos en PHP.


Un resumen básico de la sintáxis de PHP sería el siguiente:

  • El código PHP se puede introducir en cualquier parte del documento HTML para crear nuestra página web dinámica. Se denomina escapar de HTML.

  • El script debe ir entre las etiquetas, tags o directivas <?php ... ?> aunque también podemos utilizar la forma abreviada: <? ... ?>. Es recomendable utilizar siempre la forma no abreviada, por posibles incompatibilidades con el servidor web al no tener habilitada la función o característica correspondiente.

  • Cada línea de código PHP debe terminar con un punto y coma (;). El punto y coma es un separador para distinguir una instrucción de otra.

  • Hay dos funciones básicas de PHP para devolver texto, es decir, para escribir texto en la página web resultante. Son echo y print. Las veremos más adelante, aunque ya hemos visto varios ejemplos de echo(). Si quieres saber las diferencias entre la función echo() y print(), te recomiendo que leas este post de Baluarte.net: Usos de print() y echo().

  • Los archivos deben tener la extensión .php. Si tienen extensión .htm o .html, el código de script no será interpretado por el servidor, por lo que no nos lo devolverá como HTML y no podremos visualizarlo, sólo el contenido HTML Un archivo PHP puede contener sólo código HTML, aunque no es algo práctico que hacer ya que el servidor intentará proprocesar el código inexistente, tardando algo más nuestra página en cargarse de forma innecesaria.

  • Los comentarios en PHP se escriben entre dos barras inclinadas // para una única línea. Si queremos comentar más de una línea, es decir, un bloque , utilizaremos estos símbolos: /* como apertura y */como cierre del comentario en bloque.


Para crear la página, en principio necesitaremos tan sólo un editor de texto, como el bloc de notas de Windows o cualquier editor de textos de Linux (yo utilizo el sencillo gedit), en el caso de que hayamos optado por instalar nuestro servidor local en una distro Linux. Sólo tendremos que salvar el archivo con la extensión .php y guardarlo en la carpeta correspondiente de nuestro proyecto web.


Si hemos instalado el servidor XAMPP en Windows, será la carpeta C:/xampp/htdocs. Para visualizarlo, escribiremos en un navegador web la dirección de nuestro servidor local y el nombre de nuestra página con la extensión .php (principalmente). Sería: http://localhost/primera_pagina.php o http://127.0.01/primera_pagina.php, o el nombre que la hayamos dado. Eso sí, siempre con la extensión .php. El código anterior, guardada la página como primera_pagina.php. El código de la misma es el siguiente:




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Ejemplo de código PHP</title>
</head>
<body>
<!-- Inicio de un comentario en HTML: Aquí insertamos el código PHP escapando de HTML -->
<p>
<?php echo "Esto es un script PHP. Se mostrará este texto en el navegador"; ?>
</p>
<p>

 <?php
// Esto es un comentario en PHP de una sola línea. No se visualizará en el navegador web

echo "Otro texto aquí, <b>entre comentarios PHP</b> que no se visualizarán.";
/* Y esto es un comentario en bloque:

Podemos escribir tantas líneas de texto como queramos y seguirá siendo el mismo comentario.
Lo importante es que cuando acabemos de comentar el código tengamos la precaución de cerrarlo.
Acabamos de insertar código HTML en el código PHP, en concreto la etiqueta de negrita <b></b>
Cerramos el comentario */
?> 


</p>
</body>
</html>

Los comentarios en PHP no se visualizarán tampoco aunque veamos el código fuente, al ser preprocesados por el servidor web. Pero con PHP se pueden hacer muchas más cosas que eso, y no sólo enfocado al desarrollo web, aunque en este blog hablemos principalmente de eso. Si quieres saber más al respecto, visita la página ¿Qué se puede hacer con PHP? del manual oficial.


Por ahora no hemos hecho nada especial ¿verdad? Paciencia. En el próximo post hablaremos de las variables, tipos de datos y algunas funciones básicas de PHP. Con eso ya tendremos más herramientas para empezar a ver por nosotros mismos las posibilidades de PHP. Hasta pronto.


Enlaces recomendados:
- Manual oficial de PHP (en castellano)
- PHP Tutorial W3Schools  (en inglés)
- Conceptos básicos de php (Webestilo)