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é…

PHP dispone de un buen número de funciones propias del lenguaje, pero además podemos crear las nuestras propias. Esto último lo veremos bastante más adelante. Primero, la base. De todas formas, conviene que le eches un vistazo al listado de todas sus funciones en su página oficial de PHP: funciones en PHP.

Comentaros también que una función puede que sólo efectúe una operación, como la obtención de la fecha y la hora que ya hemos visto. El resultado podremos imprimirlo en pantalla -con el constructor del lenguaje echo o print que también hemos utilizado mucho- o guardar el resultado en una variable para utilizarlo más adelante, tal vez en otra función.

Ahora vamos a ver todo esto que hemos explicado con un ejemplo de una función que calcula la raíz cuadrada de un número, el cual se lo pasamos a la función como un parámetro, siempre entre paréntesis. La función nos devolverá un resultado (a la variable la hemos llamado también $resultado) a través de la palabra reservada return. Luego, para mostrar en pantalla el resultado, creamos otra variable denominada $raiz_cuadrada a la cual asignamos la función con un valor de nuestra elección, un argumento. En el ejemplo siguiente vamos a utilizar el número 10 como argumento o parámetro. La función multiplicará 10 * 10 y guardará el valor en la variable $raiz_cuadrada. Después, simplemente mostramos el resultado en pantalla a través del constructor echo, la cual no es necesario que lleve los valores o argumentos entre paréntesis. Importante esta pequeña aclaración: echo y print no son verdaderas funciones. Os aconsejo que leáis la referencia del lenguaje al respecto: echo / print.

El ejemplo:

<?php
// Función para calcular el cuadrado de un número
# También podemos escribir el comentario de una línea con la almohadilla (#)
/* o escribir un comentario en varias líneas, sin problemas,
siempre y cuando las acotemos con estos signos que observas */ 

function calcula_cuadrado_numero ($numero) {
$resultado = $numero * $numero;
return $resultado;
}

echo ‘Vamos a mostrar el resultado de la operación realizada en la función <b>calcula_cuadrado_numero</b> sobre el argumento 10<br /><br />’;

$raiz_cuadrada = calcula_cuadrado_numero(10);
echo “La raíz cuadrada de 10 es: <b>$raiz_cuadrada</b>”; // fíjate que aquí hay comillas dobles porque en la sentencia de echo hay una variable incluida
?> Ejecutar ejemplo


Bien, hasta aquí la introducción. Más adelante volveremos a las funciones en PHP e iremos viendo las más importantes. Poco a poco…

Lecturas recomendadas:
Funciones internas en PHP (manual PHP.net)
Definición de función en programación (desarrolloweb.com)
Funciones en PHP (desarrolloweb.com) 

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

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).

Hay una cosa importante que debemos tener en cuenta: los operadores de incremento y decremento pueden anteceder o preceder a la variable, cambiando así el resultado de la operación. Es decir, no dará el mismo resultado la operación $a++ que la operación ++$a: situar el incremento antes de la variable (++$a) da prioridad al incremento (o decremento –, si fuera –$a). Un ejemplo para ver la diferencia:

<?php $a= 2; echo”El valor de la variable <b>a</b> es: 2<br />”; //mostramos el valor de la variable, que es 2 $a++; // incrementamos la variable en uno con el post-incremento, siendo ahora su valor 3. No lo mostramos echo”Ahora será: <b>”.++$a.”</b>”; // ahora la variable valdrá 4 (3 + 1), al haberse realizado primero el post-incremento ?> Ver ejemplo

En el próximo post trataremos la concatenación de cadenas, que ya hemos utilizado en el ejemplo: (echo”Ahora será: <b>”.++$a.”</b>”; ) y los cambios de tipo.

Enlaces útiles al respecto:
PHP.net: Operadores incremento y decremento (Manual oficial)
Operadores de incremento y decremento

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)

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.

Operadores en PHP (I): de asignación y aritméticos

Hemos visto las variables en PHP y sus tipos de datos, aunque todavía nos faltan cosas, una de ellas las matrices o arrays. Eso lo veremos más adelante. Ahora creo que es ya el momento de empezar a ‘jugar’ un poco con PHP. Desde luego que las variables son muy importantes, pero si no podemos operar con ellas, nos quedamos un poco en el ‘limbo’. Así que, durante los dos o tres próximos posts hablaremos de los operadores en PHP, ¿OK? Vamos allá.

Los operadores en PHP son los símbolos que nos permiten realizar operaciones tales como suma, resta, división, multiplicación, concatenación o unión de cadenas (strings), etc. Realmente son muy necesarios si queremos conseguir algo más de lo que hemos hecho hasta ahora: sustituir variables por un valor. Aunque en lo que hemos hecho hasta ahora también han tenido que ver los operadores, en concreto el operador de asignación, representado por el símbolo matemático igual (=). Lo primero de todo será una pequeña clasificación de los principales operadores en PHP:

  • Operadores de asignación
  • Operadores aritméticos
  • Operadores de comparación
  • Operadores lógicos
  • Operadores de incremento
  • Concatenación (unión) de cadenas 

Operadores de asignación
Es el operador representado por el símbolo igual (=)- Se encarga de asignar el valor que aparece a la derecha del signo al operando de la izquierda, es decir, lo que está a la derecha del signo igual se asigna a lo que está a la izquierda. Veamos un ejemplo:

<?php $saludo = ‘Buenos días’; ?>
A la variable $saludo se le ha asignado el valor Buenos días. También podríamos haberle asignado otra variable ya existente. Para ello recordar que es mejor utilizar comillas dobles.

Operadores aritméticos
Estos son los típicos operadores de suma, resta, multiplicación, división… Los principales o los que más vamos a usar se representan de la siguiente forma:

Suma = +
$n = 2 + 3

Resta = –
$n = 4 – 3

Multiplicación = *
$n = 72 * 3

División = /
$n = 18 / 2 

Cuando combinamos estos operadores con el de asignación (=), podremos realizar sencillas operaciones matemáticas. Veámoslo:

<?php
$total;

$numero = 1;
$numero2 = 3;
$total =  $numero + $numero2;
echo “El resultado de $numero más $numero2 es: <b>$total</b>”; // Aquí imprimimos el resultado de la suma de las dos variables $numero y $numero2

?>
Ver ejemplo 

El resultado, obviamente, será 4. Aquí vemos que no hemos utilizado comillas simples ni dobles tras la asignación del valor, ya que se trata de enteros (integers). Aunque PHP no declara explícitamente el tipo de datos, sí que lo hace implícitamente, reconociendo, por ejemplo,  si son enteros, decimales o cadenas de texto (strings). Más adelante hablaremos de la conversión de tipos de datos. Al hilo de esto último, fijaos que en donde he esccrito la palabra más hubiera podido escribir también el signo +, ya que el preprocesador PHP lo hubiera tratado también como un string (cadena de texto), al no haber ningún signo de asignación en la última línea del código. Simplemente lo que hace es imprimir la operación de la línea anterior $total =  $numero + $numero2; 

También hay que tener en cuenta el orden de las operaciones, ya que no es lo mismo 2 + 3 *8 que (2+3) *8 ó 2 + (3 * 8). Los paréntesis nos indican qué operación deberemos realizar primero. Así, los operandos que van entre paréntesis tienen que computarse o calcularse primero.

Tenemos a nuestra disposición unos operadores que combinan las asignaciones (=) con los operadores aritméticos. Son los llamados operadores extendidos de asignación. Son los siguientes:

-=
+= 
*=
/=

Veamos como funcionan con algunos ejemplos:

$a=2
$b=5
$a+= $b // Esto sería lo mismo que $a = $a + $b

$c=2
$d=5
$d*= $c // Esto sería lo mismo que $d = $d * $c

Continuaré…

MIentras tanto, para saber más sobre los operadores en PHP, os recomiendo que visitéis este enlace: http://www.ignside.net/man/php/operadores.php Por cierto, en ignside.net encontraréis varias herramientas interesantes, así como un tutorial sobre PHP.

Variables en PHP (II): más sobre las variables en PHP y sus tipos de datos

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

Como habréis podido observar, no he tenido que definir la variable bloque previamente y he utilizado la función echo para imprimir el resultado en pantalla. Pero para utilizar las cadenas de texto en bloque o sintáxis heredoc, debemos seguir algunas reglas:

– Escribir la variable en mayúscula precedida por tres signos menor que (<<<)
– Finalizar la declaración de la variable con el nombre también en mayúsculas seguido de un punto y coma (;)

Tenéis mucha más información al respecto en el enlace anterior sobre la sintáxis heredoc. Si lo pensáis bien, con esta sintáxis podemos incluir bastante código html e incluso cósdigo Javascript (si no me equivoco), dentro de la variable. Así, dentro del contenido de nuestras variables en bloque, podremos incluir código HTML, como retornos de carro o saltos de línea. Y esto lo digo porque aunque nosotros hayamos escrito el texto con saltos de línea, una vez procesados y mostrado el valor en el navegador web, dichos saltos de línea no se mostrarán. Para ello deberemos utilizar los llamados caracteres de escape o código html, como el salto de línea <br />

Para las cadenas de texto ‘normales’, utilizaremos los denominados carácteres de escape: 

– Barra invertida: \
– Comilla simple: ‘
– Comillas dobles: “
– Retorno de carro o salto de línea: n
– Tabuladores: t
– Signo dólar: $

Ejemplo:

<?php $texto2= “Esto es un texto con la palabra “hola” en comillas dobles”;
echo $texto2;
?>
<?php $texto5= “Esto es un texto que cuesta 1 $”;
echo $texto5;
?>

Ver ejemplo

Para saber más al respecto, os recomiendo la lectura de esta página de Wikilibros: Programación en PHP. Cadenas. A mí me ha solventado una duda que tenía al respecto.

Cuando una cadena es especificada en comillas dobles o en el interior de un bloque heredoc, las variables son interpretadas en su interior. Vamos a introducir la variable $nombre dentro de nuestra variable de cadena en bloque:

<?php
$nombre = ‘Guillermo’;
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.
<br /> <br />
Por cierto, mi nombre es:<br />
<b>$nombre</b>.<br />
Aquí he utilizado otra variable<br />
dentro de la variable cadena de texto<br />
Además, he utilizado saltos de línea en HTML.
BLOQUE;
?>

Ver ejemplo

Como habréis observado, no he necesitado poner comillas dobles a la variable $nombre para llamarla o invocarla, ya que he utilizado la sintáxis heredoc. Si hubiera sido una cadena de texto normal, tendría que haber utilizado comillas dobles para que la variable se interpretara- Esto es importante tenerlo muy en cuenta. Veamos un ejemplo:

<?php   
$ciudad = “Valencia”; 
$presentacion = “Vivo en $ciudad”; 
echo $presentacion; //imprime en pantalla el contenido de la variable $presentacion: “Vivo en Valencia” 
 //sin embargo 
$presentacion = ‘Vivo en $ciudad’; 
echo $presentacion; //imprime en pantalla el texto $presentacion, literalmente: “Vivo en $presentacion” 
?> Ver ejemplo

Por último, en cuanto a las matrices o arrays, creo que es mejor que las tratemos en un post independiente, debido a su importancia. En breve…

Variables en PHP (I)

Como os comentaba en el anterior post, sobre la sintáxis básica de PHP, en este vamos a ver una introducción a las variables en PHP y sus tipos de datos. Pero si queremos empezar de cero, deberenos definir primero el concepto de variable en el mundo de la programación y la programación web. Empecemos pues: una variable es la representación gráfica de un puntero de memoria, un espacio que reservamos de la memoria RAM de nuestro ordenador o servidor para ‘invocarlo’ cuando lo necesitemos, igualando su valor a lo que nos interese, es decir, a un determinado valor con un determinado tipo de datos. Hablamos pues de la declaración de variables y de tipos de datos de variables. Así pues, las variables tienen un  nombre, un valor y un tipo de datos.

¿Y cómo se representan? Las variables en PHP se escriben anteponiendo el símbolo dólar ($) al nombre de la variable que vamos a definir. Pueden llevar un guión bajo, letras y números, pero nunca empezar por un número, ni tener un espacio en blanco. La asignación del valor de la variable va precedida por el símbolo igual (=). La declaración de la variable debe finalizar con un punto y coma (;), como toda línea de instrucción en PHP Algunos ejemplos:

$_texto=”Hola”;
$texto=’Otra cadena de texto’;
$_Texto=’Es mejor utilizar comillas simples’;
$Texto=”Las comillas dobles implican un procesamiento”;
$Texto2=’Todo eso lo veremos más adelante’;

PHP distingue entre mayúsculas y minúsculas, es un lenguaje ‘case-sensitive. Así, estas dos variables son distintas, a pesar de que su valor sea el mismo y su tipo de datos también:
$_texto=’Hola’;
$_Texto=”Hola”;

Veamos una variable en su ‘salsa’:

La hora es: <?php $_texto=’Esto es una variable en PHP’;
// Mostramos la variable en el navegador
echo  $_texto;
?>

Ejecutar ejemplo

El valor de la variable $_texto es la cadena de texto ‘Esto es una variable en PHP’, que también podría escribirse así: “Esto es una variable en PHP”.

PHP es un lenguaje de script muy flexible, pero no declara explícitamente el tipo de datos de las variables. Eso no quiere decir que dichos tipos no existan ni que tampoco podamos comprobarlos. En el ejemplo anterior, y adelantando acontecimientos, la variable $_texto tiene como tipo de datos una cadena de texto (“Esto es una variable en PHP”). PHP permite operar con las variables, pudiendo cambiar ‘dinámicamente’ el tipo de datos al realizar operaciones entre ellas.

Tipos de varibles en PHP
Existen 4 grupos de tipos de datos para las variables en PHP:

  • Variables numéricas: Almacenan valores de cifras, números enteros y reales. Su valor no debe ir entre comillas..
    $entero=99; // números enteros
    $pi=3.14159; // números reales con o sin decimal
    $nacimiento = 1967
  • Variables alfanuméricas (cadenas de texto): almacenan cadenas compuestas por textos y/o números. Su valor se expresa entre comillas simples o dobles.
    $cadenaTexto=”Un texto cualquiera”;
    $cadenaTexto2=”1967″;
    $cadenaTexto=”Nací en 1967, ya soy viejales”;
  • Matrices (o tablas) (arrays): almacenan series numéricas y(o alfanuméricas. El primer elemento elemento disponible en una matriz es el cero [0]. Dependiendo del tipo de datos, su valor se expreará entre comillas o no.
    $enero[0]=”Ir al cine”;
    $febrero[1]=”Aprender PHP”;
    $marzo[2]=”Ya son fallas”;
    $abril[3]=”Llega la primavera”;
    $año[2]=2011;
  • Objetos (conjuntos de variables y funciones asociadas): Los veremos más adelante…

Dependiendo de la información que contenga, una variable puede ser considerada de uno u otro tipo. A diferencia de otros lenguajes, PHP posee una gran flexibilidad a la hora de operar con variables. En efecto, cuando definimos una variable asignándole un valor, el ordenador le atribuye un tipo. Si por ejemplo definimos una variable entre comillas, la variable será considerada de tipo cadena:

<?php $numero=”365″; ?>

A pesar de ser un valor numérico,la variable  $numero se interpretará como una cadena de texto al ir entre comillas. Pero si realizamos operaciones entre variables, el tipo de dato cambiará para adaptarse al contexto. Si lo hubiéramos escrito así <?php $numero=365; ?> su tipo de datos sería claramente numérico, en concreto, su valor es un entero  (sin decimales), el 365.

Introducción a las funciones en PHP
Comentaros también que es importante que introduzcamos el concepto de funciones en la programación. PHP dispone de una considerable cantidad de las mismas. Veamos un ejemplo:

<?php $hora=date (‘H:i:s’); ?>
Esta función, una vez ‘invicada a través de otra función, como es ‘echo’, nos mostrará la hora con unos determinados parámetros en este caso que son hora (H), minutos (i) y segundos (s). Así, si quisiéramos mostrar una página con la hora en ese formato, escribiríamos el siguiente script en PHP:

<?php $hora=date (‘H:i:s’);
echo $hora;
?>

Ejecutar ejemplo

En el próximo post, ampliaremos el contenido de las variables y, sobre todo, nos introduciremos en las funciones en PHP.


Enlaces recomendados:

Variables en php (manual oficial en inglés):
Artículo en desarrolloweb.com sobre variables en php

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)

Instalar y configurar PHP en modo local en Windows y Linux

Ahora que ya sabemos lo que es PHP, querremos empezar a utilizarlo, aunque todavía no sepamos muy bien cómo. Para ello, el siguiente paso es instalarlo en nuestro PC, en modo local, para así poder hacer todas las pruebas necesarias en un entorno de desarrollo, sin miedo a ‘romper’ nada. Vamos a ello.

PHP necesita de un servidor web para poder trabajar. La elección idónea es Apache, probablemente el servidor open source más utilizado en el mundo, si no me equivoco. Disponemos de varias formas de instalar PHP con el servidor Apache, así como instalar cada tecnología por separado en los sistemas operativos más utilizados: WindowsLinux, Mac OS X y Solaris.

Yo lo he instalado tanto en Windows como en Linux, en concreto en la distro Ubuntu. Esta última elección es mi preferida, ya que PHP y el servidor Apache están especialmente concebidos para trabajar en entornos open source. Lo de Ubuntu es simplemente porque es la distro Linux que más me gusta, además de ser un sistema operativo muy robusto y en constante desarrollo y mejora. Pero eso es harina de otro costal. Volvamos al tema en cuestión: instalar todo el entorno necesario para trabajar con PHP en nuestro PC, convirtiéndolo así en un servidor ‘de pruebas’ para nuestro aprendizaje.

En mi opinión, la mejor opción es instalar XAMPP de Apache Friends. XAMPP se comercializa liberado bajo licencia GNU, es decir, es software libre (open source). Además, Xampp es multiplataforma y gratuito. Veamos como lo describe Apache Friends:

XAMPP es una forma fácil de instalar la distribución Apache que contiene MySQL, PHP y Perl. XAMPP es realmente simple de instalar y usar – basta descargarlo, extraerlo y comienzar. En este momento hay cuatro versiones de XAMPP: XAMPP para Linux, XAMPP para Windows, XAMPP para Mac OS X y XAMPP para Solaris.


Instalación en Windows
Los pasos para instalar XAMPP en Windows son extremadamente simples:

– Descargar el paquete de instalación (.zip para Windows) e iniciar la instalación: http://www.apachefriends.org/en/xampp-windows.html. Es muy recomendable instalarlo en el directorio raíz de nuestro PC, normalmente en C:/ La instalación se encargará de crear la carpeta xampp, e la que se alojarán todos los archivos de nuestro servidor, así como los proyectos web que queramos que funcionen bajo el mismo.

– Una vez instalado Xampp, pondremos en marcha el servicio. Para comprobar que todo funciona perfectamente pulsaremos sobre el botón “Start” del módulo Apache e, inmediatamente, nos avisará mediante el mensaje “Running” de que el módulo se encuentra activo. Lo mismo haremos con el módulo de MySql, el gestor de bases de datos (de MySQL hablaremos más adelante).

Para poner en marcha Xampp ejecutamos el fichero C:/xampp/xampp-control.exe. Veremos lo siguiente:

Panel de control de Xampp para Windows
Panel de control de Xampp para Windows. En mi caso, una instalación portable

Dispondremos de iun acceso directo al panel de control en la barra de tareas de Windows.

La raíz del servidor Apache se encuentra en el directorio C:xampphtdocs. Todos los ficheros que se encuentren dentro de este directorio serán procesados por Apache cuando accedamos mediante la URL especial http://localhost o http://127.0.0.1, nuestro propio servidor! SI todo ha ido bien (seguro), verás esta página:

Página de inicio de Xampp
Página de inicio de Xampp

Es conveniente seguir las instrucciones básicas de seguridad. En principio, el usuario es root y la contraseña está vacía. Al ser un servidor local, de desarrollo, en principio no es demasiado grave, pero conviene tomar las medidas básicas de seguridad para evitar ataques desde el ‘exterior’.

Puedes ver todo el proceso de instalación (en inglés) en la siguiente dirección: http://www.apachefriends.org/en/xampp-windows.html#522. Un apunte interesante: también existe una versión de Xampp portable.


Instalación del entorno en Linux, distribución Ubuntu
Como os he dicho, es mi preferida. Existe un servidor web también de código libre que nos permite utilizar todo el ‘paquete’ desde una misma instalación. El entorno se denomina XAMPP, acrónimo de Apache, MySQL, PHP y Perl. La X inicial viene del sistema operativo, que puede ser cualquiera de los tres más utilizados que antes hemos comentado.  Para la instalación en Ubuntu utilizaremos LAMPP (Linux, Apache, PHP y Perl). Sólo necesitaremos loguearnos como superusuario en una sesión de la consola y escribir lo siguiente, tras loguearte como super usuario (sudo su):

root@ubuntuPC:/home/TU_USUARIO# apt-get install apache2 php5 libapache2-mod-php5

Descargará todos los paquetes necesarios para disponer de  el servidor Apache en nuestro PC  y PHP. Ahora instalaremos MySQL, el gestor de bases de datos:

root@UBUNTU:/home/TU_USUARIO# apt-get install mysql-server mysql-client php5-mysql

Con ello, ya disponemos de nuestro entorno LAMPP, bueno, en este caso LAMP (Linux, Apache, MySQL y PHP) , ya que Perl (la última P del acrónimo) no vamos a utilizarlo en principio. En este caso, la versión de PHP que hemos instalado es la 5. LA instalación de XAMPP para Linux se realiza en la carpeta /opt/lampp. Para iniciar el servicio, simplemente teclea en la consola: /opt/lampp/lampp start y accede a la página principal de Xampp., bueno, de LAMPP a través de la ruta local: http://localhost o http://127.0.01. Te aparecerá la página con el mensaje:

It works!

Te dejo todo el proceso de instalción de la página oficial de Apache Friends (recuerda, en inglés): http://www.apachefriends.org/en/xampp-linux.html#377

Bien, continuaremos…

Enlaces recomendados:
Manual oficial de instalación de PHP
Apache + PHP + MySql + PhpMyAdmin como módulo de Apache
Cómo instalar PHP en Windows
Instalación y configuración de PHP
Instalación de PHP en nuestro servidor
WebTaller – Aprender PHP – Instalación php en IIS

PHP: un comienzo, la definición

Y de paso, ¿qué podemos hacer con esta tecnología open source?

Logo oficial de PHP. Fuente: www.php.netPor algún sitio se debe comenzar, y qué mejor que por el principio: empezar a aprender desde el inicio, desde el desconocimiento y hacia el conocimiento, poco a poco, gradualmente, paso a paso. Esa es mi pequeña declaración de intenciones.

Y para comenzar, ¿qué mejor que una descripción de la tecnología que quiero tratar, PHP? Bien, veamos algunas definiciones primero. En la Red disponemos de todo lo necesario para iniciar esta pequeña aventura, hacia el conocimiento en mi caso y  en el vuestro, si partís del mismo sitio que yo. Vamos allá:

PHP – Wikipedia, la enciclopedia libre
Fuente: http://es.wikipedia.org/wiki/PHP
Wikipedia: PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools)…

¿Qué es PHP, cómo surgió y para qué se utiliza?
Fuente: http://www.nociondigital.com/webmasters/php-tutorial-que-es-php-como-surgio-y-para-que-se-utiliza-detalle-191.html
PHP es un lenguaje interpretado (script), pensado fundamentalmente para añadir funcionalidad a los servidores de páginas web. . .

Hay muchas definiciones más, pero bastará con estas por ahora. Una rápida búsqueda en Internet sobre PHP y veréis a lo que me refiero. Pero si tuviera que dar mi definición, diría esto: PHP es un lenguaje de script (guión) de código libre y multiplataforma que está especialmente indicado para crear aplicaciones web, aunque puede utilizarse para otros ‘menesteres’. Se ejecuta en el lado del servidor. Algunos ejemplos de su uso, entre mucho más: el CMS WordPress y la propia Wikipedia están realizados bajo PHP. Algo debe tener esta tecnología open source ¿no?…

PHP está pensado para que la curva de aprendizaje sea corta, es decir, podamos empezar a utilizarlo con relativa rapidez, aunque eso no implica que no sea muy versátil y disponga de un número muy considerable de funciones. Actualmente es uno de los lenguajes preferidos para la creación de proyectos web. Se lleva ‘a la perfección’ con MySQL.  el sistema también open source gestor de bases de datos que se ejecuta en el (también) popular servidor web Apache. De ambos tendremos que hablar también.

PHP está mantenido por PHP Group y su licencia de software libre.

No voy a escribir el típico ejemplo de Hola mundo! En su lugar, y aunque todavía no halla hablado de la sintáxis de PHP, muestro un ejemplo con dos páginas: una en HTML y la otra en PHP. La primera, enviar_nombre.html, dispone de un formulario con un campo nombre y un botón Enviar. Al pulsarlo, la acción del formulario lo enviará a una página PHP (recoger_nombre.php) en la que recogemos el valor de la variable y la mostramos. Aquí va el ejemplo:

Página en HTML denominada enviar_nombre.html:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title> Enviar nombre </title>
</head>
<body>
<p>
Este fragmento de código es sólo HTML<br />
Escribe aquí tu Nombre:
</p>
<form action=”recoger_nombre.php” method=”post”>
<p>
<input type=”text” name=”nombre” /> <input type=”submit” value=”Enviar” />
</p>
</form>
</body>
</html>

Y esta es la página en PHP (.php) denominada recoger_nombre.php que recoge el valor del campo nombre del formulario de la página enviar_nombre.html:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title> Recuperar nombre </title>
</head>
<body>
<p>En esta página php recogemos la variable enviada desde el formulario de la página enviar_nombre.html:</p><br />
<p>Gracias por decírmelo. Tu nombre es: <b><?php echo $_POST[‘nombre’]; ?></b></p>
</body>
</html>

Podéis probarlo desde aquí: enviar_nombre.html

Como véis, el código de PHP se embebe perfectamente dentro del de HTML. Se diferencia por estar entre las directivas de apertura<? y de cierre ?>, mejor si la de apertura muestra o declara el lenguaje de script que vamos a utilizar, quedando así: apertura <?php y la misma etiqueta de cierre anterior: ?>. Ya hablaremos más al respecto.

En el próximo post hablaré de la instalación de PHP dentro de un entorno de desarrollo, es decir, en un servidor local, para que hagamos todas las pruebas que queramos sin miedo a ‘romper nada’.

Lectura recomendada:
Conceptos básicos de PHP (PHP.net)

¡Hola, Aprendiendo PHP!

Bienvenido a WordPress. Esta es tu primera entrada. Edítala o bórrala, ¡y comienza a publicar! Bueno, lo haré un poquito más adelante ¿OK?