PHP Pandas PDF
PHP Pandas PDF
PHP Pandas PDF
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean
Publishing process. Lean Publishing is the act of publishing an in-progress ebook
using lightweight tools and many iterations to get reader feedback, pivot until you
have the right book and build traction once you do.
Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Errata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Traducciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
1. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Mac OSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Encontrando respuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Los programadores son robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
El arte de usar Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4. Aritmética básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Sentencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5. Variables y asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Pequeñas cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
De mi tipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Asignación avanzada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Agradecimientos
Antes que nada, me gustaría agradecer a mi novia Emma, no solo por animarme
con todas mis aventuras, ¡si no también por hacer esas increíbles fotos a los pandas
rojos para ambos libros! ¡Te amo Emma!
Gracias a mis padres, ¡que han estado apoyando mis esfuerzos con estas cajas para
hacer números durante 30 años! ¡También gracias por comprar un billón de copias
del primer libro para la familia!
Gracias a todo el que haya comprado mis otros libros, Code Happy y Code Bright, y
a toda la comunidad de Laravel. Sin vuestro soporte nunca habría tenido confianza
en seguir escribiendo.
i
Errata
Este puede ser mi tercer libro y mi escritura puede haber mejorado desde la
última vez, pero te aseguro que habrá muchos, muchos errores. Puedes ayudarme
a apoyar el libro enviándome un correo con cualquier error que encuentres a
[email protected]¹ junto con el título de la sección.
Los errores serán corregidos conforme vayan siendo descubiertos. Las correcciones
serán lanzadas con actualizaciones futuras del libro.
¹mailto:[email protected]
ii
Feedback
De la misma forma, puedes enviarme cualquier feedback que tengas sobre el conte-
nido del libro o lo que quieras, enviando un correo a [email protected]²
o un tweet a @belelros. Me esforzaré en responder a todo correo que reciba.
²mailto:[email protected]
iii
Traducciones
Si quieres traducir PHP Pandas a tu idioma, por favor envíame un correo a
[email protected]³ con tus intenciones. Ofreceré un 50/50 de los beneficios de la
copia traducida, que tendrán el mismo precio que la copia en Inglés.
El libro está escrito en formato markdown.
³mailto:[email protected]
iv
Traducciones 1
¡Hola! ¡Estoy seguro de que eres el/la lector más guap@ Y/O bell@ del planeta! Me
alegra que te hayas hecho con PHP Pandas y comiences el camino hacia tu carrera
como programador web de fama mundial.
¿Quién soy? Es una pregunta sencilla. Me llamo Dayle y seré el autor de esta
aventura. He estado escribiendo libros para principiantes durante unos años a estas
alturas y he tomado a otros encantadores lectores como tú en las aventuras de
aprendizaje de nuevas habilidades. Haremos descubrimientos juntos y, durante el
camino, estaré a tu lado.
¿Por qué escribes como una persona que está mal de la azotea?
Eso sería contarte mi secreto. Aun no podemos compartir eso pero, ¿acaso no sienta
bien saber que formas parte de la aventura y no eres un mero espectador?
Excelente.
Este es el espacio en el que cualquier otro libro te hablaría sobre PHP, su historia, su
aplicación, su autor y un millón de cosas más. Ya te he dicho que no soy el autor más
tradicional y esos capítulos no me gustan y me parecen aburridos. Has comprado
este libro para aprender PHP, así que ya tienes algo de curiosidad. Creo que es todo
lo que necesitas.
PHP es un lenguaje de programación que usan la mayoría de los sitios en internet.
Fue escrito originalmente por alguien llamado Rasmus Lerdorf, al cual puedes ver
sonriendo en la mayoría de las fotos que encuentres de él en Google. Rasmus es
un gran tío y le agradezco cada día por este lenguaje pero esto es todo lo que creo
Traducciones 2
que tienes que saber sobre él. Otros libros probablemente te hablarían sobre sus
cereales preferidos para el desayuno, pero ¿comenzamos ya a aprender?
Este libro es para principiantes absolutos. Esto significa que si nunca has progra-
mado antes en tu vida, ¡estás de suerte amigo mío! Si ya has intentado programar
te irá bien también. Si eres un experto en PHP quizá sea hora de refrescar tus
habilidades y quizá descubras algunas cosas nuevas en este camino.
He usado a mi novia, a mis amigos no-programadores y a gente aleatoria en la calle,
obligándoles a leer el libro como ratas de laboratorio para ver cómo funciona con
gente que no tiene idea alguna de PHP. Mis pequeñas ratas lo han hecho genial,
ahora es tu turno.
La meta de este libro es que se convierta en el libro más divertido, práctico y
fantástico sobre PHP en el mercado. Quiero que sea el libro que se recomienda
cuando alguien comience a aprender PHP. He trabajado duro para hacer que sea
accesible para todos por lo que si disfrutas de esta aventura, te agradecería que
escribieras sobre el libro en Twitter, tu blog o le regales copias a tus amigos y
familiares.
Este libro es un libro de sintaxis para PHP. No te va a enseñar a hacer webs (estoy
trabajando en otro título para esto), es el primer paso que te ayudará a sentar una
buena base de conocimiento del lenguaje para que a la hora de crear tu primera
web, seas bueno.
Si lees el libro y descubres que falta algo, un capítulo en concreto es confuso o hay
algo que te moleste, por favor envíame un correo a [email protected] para hacérmelo
saber. ¡Quiero que el libro sea perfecto para todos!
Si lees el libro y no encuentras nada malo, bueno… mándame un correo y me
cuentas que lo has disfrutado!
No gastemos más tiempo. ¡Aprendamos algo! Pasa de página e imagina la música de
Jurassic Park en el momento en que se abren las puertas, y prepárate para entrar
en el mundo del desarrollo.
1. Instalación
Antes de empezar a trabajar con PHP, primero tenemos que instalarlo. Como verás,
PHP es una aplicación como otra cualquiera. Necesita ser instalada en nuestro
sistema antes de que pueda procesar código PHP.
El método de instalación varía ampliamente dependiendo del sistema operativo
que estés usando. Por ese mismo motivo, os ofrezco tres guías diferentes para
instalar PHP. La primera sección explicará cómo instalar PHP en una distribución
de Linux, en Ubuntu concretamente debido a su popularidad. La segunda sección
explicará cómo instalar PHP en un sistema Mac OSX de Apple. Finalmente, la tercera
sección explicara cómo instalar PHP en Windows.
Únicamente vamos a instalar la versión de consola de PHP. No vamos a crear un
servidor web aun. Ya llegaremos a eso. La versión de consola de PHP es todo lo que
necesitamos para comenzar con nuestro proceso de aprendizaje.
Recuerda, solo tienes que leer la sección adecuada a tu equipo. Una vez que
tengas PHP instalado, salta al siguiente capítulo del libro.
Linux
La mejor forma de instalar PHP en una distribución de Linux es usar un gestor de
paquetes. El gestor de paquetes disponible depende ampliamente de la distribución
de Linux que tengas. He decidido facilitar instrucciones para instalar PHP en
Ubuntu, una de las distribuciones de Linux más populares hoy en día.
Ubuntu usa el gestor de paquetes conocido como apt para instalar sus paquetes.
Para instalar la versión de consola de PHP, tenemos que instalar el paquete php5-
cli. Vamos a hacerlo. Abre un nuevo terminal antes de nada. Escribe lo siguiente
en la ventana del terminal.
No tienes que escribir el símbolo del dolar $, es simplemente lo que se suele ver
en el terminal y así marcamos que estamos escribiendo en la consola. Una vez que
pulses enter, apt obtendrá el paquete PHP y lo instalará por ti.
¡Ya está! Has terminado. Bueno, o deberías. Vamos a revisar, ¿vale? Escribe simple-
mente…
3
Instalación 4
1 $ php -v
Este comando se usa para mostrar la versión de PHP instalada actualmente. Debe-
rías ver algo similar a esto.
La tuya no será exactamente igual, después de todo, somos todos diferentes, ¿no te
parece? En el ejemplo de arriba la versión es 5.5.13. Espero que tu versión de PHP
sea 5.4.0 o superior.
Si la versión no es la correcta, tendrás que consultar la documentación de tu
distribución de Linux para descubrir cómo instalar la versión adecuada.
Ve y salta al próximo capítulo, ¡has terminado!
Mac OSX
En las máquinas Mac, PHP viene instalado de fábrica. Ve y abre el terminal y escribe
lo siguiente para descubrir la versión de PHP que estás usando.
1 $ php -v
No escribas el símbolo del dolar, ¡es la marca del terminal! Deberáis ver algo similar
a esto, pero no exactamente lo mismo.
La versión de PHP del ejemplo de arriba es 5.4.24. Mientras tu versión de PHP sea
5.4.0 o superior, has terminado y puedes ir al siguiente capítulo.
Si no, vamos a usar un gestor de paquetes de terceros para OSX para instalar una
nueva versión de PHP.
Vamos a usar un gestor de paquetes llamado ‘Homebrew’ o tan solo ‘Brew’. Para
instalarlo, sigue las instrucciones que puedes encontrar en el siguiente sitio:
brew.sh¹
No quiero copiar las instrucciones aquí ya que suelen cambiar con cada nueva
versión. Una vez que tengas Homebrew instalado, es hora de instalar una versión
más nueva de PHP. Recomiendo instalar la versión 5.5. Puedes hacerlo usando el
siguiente comando.
¹http://brew.sh/
Instalación 5
1 $ PATH=~/usr/local/Cellar/php55/5.5.13/bin:$PATH
Puede que tengas que actualizar el número de la versión para que coincida con lo
que Homebrew te ha instalado. Ahora vamos a volver a mirar la versión de PHP.
1 $ php -v
Espero que, esta vez, tengas una versión de PHP más alta que 5.4.0. Ve y salta al
siguiente capítulo.
Windows
Instalar PHP en Windows es un poco más difícil, al menos lo es para mi. He probado
las instrucciones que he escrito en mi máquina con Windows 10, pero si tienes
alguna dificultad replicando estos pasos, házmelo saber y encontraré a alguien que
tenga más experiencia con Windows y reescriba esta sección.
Primero ve a:
http://windows.php.net/download²
Allí descárgate la última versión de PHP, que sea al menos la 5.4 en un archivo zip.
Una vez que se haya descargado el archivo, descomprímelo en un lugar adecuado.
Yo lo puse aquí:
1 C:\Users\Dayle\PHP
Necesitas una línea de comandos para ejecutar los scripts que escribamos en este
libro. He aquí una buena forma de ejecutar una línea de comandos en Windows.
Haz click derecho sobre tu escritorio o cualquier carpeta y elige Crear Acceso Directo.
En la caja que aparece escribe:
²http://windows.php.net/download
Instalación 6
1 cmd.exe
1 php -v
Oh dios, ese programador debe ser un robot. Sabe todas esas palabras del
código y funciones y cómo funcionan.
7
Encontrando respuestas 8
1 invertir cadena
Perfecto. Echemos un vistazo a los resultados que obtenemos de Google. Puede ser
un buen momento para mencionar que no trabajo para Google, y no estoy traba-
jando a comisión. Puedes usar Bing si quieres aunque quizá acabes comprando
un trailer para caballos usados antes de encontrar la función que buscas. Así que,
¿dónde están los resultados?
Encontrando respuestas 9
Ahora mismo estamos buscando alguna forma de invertir una cadena. No estamos
intentando resolver un problema abstracto, sabemos exactamente lo que quere-
mos.
Ve y prueba el primer enlace, serás recibido por la página del manual del PHP para
la función strrev(). No necesitas saber lo que es una función ahora mismo. No te
preocupes si esto te resulta demasiado.
Una vez que te hayas familiarizado con las funciones, verás que esta página ofrece
todo lo que necesitamos saber para usar la función strrev(), y ejemplos sobre cómo
usarla.
Como ves, haciendo las preguntas adecuadas, hemos recibido toda la ayuda que
necesitábamos para continuar con nuestro trabajo. No teníamos conocimiento
alguno sobre strrev() pero sabíamos el problema que teníamos que resolver. Eso
fue suficiente para llevarnos a una solución. No importa si tenemos que volver a la
página más tarde.
Quizá no usemos la función con la frecuencia necesaria para tener que recordar
cómo usarla. Aunque, te darás cuenta que si comienzas a usar la función más y más,
y frecuentas la página del manual, antes de que te des cuenta, dejarás de tener que
usar el manual. Pensarás enseguida, ‘Ey, debería usar strrev() que uso siempre y sé
cómo funciona’. Será parte de tu memoria y de tu conjunto de conocimientos.
¹http://php.net/manual/es/function.strrev.php
²http://www.notasdelprogramador.com/2010/09/10/invertir-una-cadena-en-php/
Encontrando respuestas 10
La lección que espero que hayas aprendido es que no deberías entrar en pánico.
No tienes que recordarlo todo, es perfectamente natural buscar ayuda. De hecho,
es humano, y es humano aprender de tu experiencia.
¡Enhorabuena! Eres un humano, no un robot.
3. Archivos
He aquí una noticia impactante. El código PHP se almacena en archivos. Lo siento,
¡pero es verdad! Vas a trabajar con muchos archivos. Bueno, de hecho, a veces uno
solo pero más tarde trabajarás con muchos, muchos de ellos.
Ahora que te he mostrado la cruda realidad, es hora de que aprendas a crear un
archivo PHP.
¡Bien hecho! Bien por ti, pero no vamos por ahí. Como verás, la mayoría de los
archivos PHP tienen algo en común. Estoy hablando sobre la etiqueta de PHP.
Échale un vistazo:
1 <?php
Yo… esto…
¿Qué? ¿No sientes lo mismo sobre ella? Confía en mi, tras muchos años de desarrollo
con PHP sentirás lo mismo. La verás cuando cierres los ojos para ir a dormir por las
noches. Es tu mejor amiga. Te permite usar PHP.
Soy de los que prefieren ejemplos prácticos así que intentemos algo juntos. Crea
un nuevo archivo, llámalo prueba.php. Los archivos PHP normalmente tienen la
extensión .php. Para ser sincero, podemos ejecutar PHP sin la extensión, pero
deberías usarla si no quieres que los programadores mayores se rían de ti, te quiten
la merienda y te hagan llorar. Solo bromeaba… los programadores son gente afable,
pero deberías usar la extensión.
Lo primero, vamos a escribir las palabras…
11
Archivos 12
1 php prueba.php
Verás las palabras ¡Los pandas molan! en la pantalla. Esto es porque todo lo que esté
fuera de las etiquetas PHP, es impreso cuando la aplicación se ejecuta. Intentemos
otra cosa. Vamos a usar nuestra primera etiqueta PHP.
Editemos el fichero para que ponga lo siguiente:
1 <?php
2
3 // ¡Los pandas son increíbles!
4
5 ?>
6 ¡Los pandas molan!
¡Bien visto, futuro programador! Hay una sección de nuestro fichero que falta. Esto
es porque todo lo que está dentro de nuestras etiquetas PHP, es tratado como código
PHP y se procesa de manera adecuada.
Así que, ¿qué son las etiquetas pHP? Bueno, ya has visto la etiqueta de apertura
PHP. ¿Recuerdas nuestra amiga <?php?. La etiqueta <?php marca el inicio de nuestro
código PHP. Así que, ¿cuándo termina? Es fácil ver el código PHP en este fichero. Es
la siguiente línea.
Archivos 13
Entonces, ¿qué es lo que hace esta línea? Absolutamente nada. Es conocida como
comentario. Ayuda a los programadores a documentar su propio código. No te
preocupes. Aprenderemos más sobre los comentarios más adelante.
Bueno, este ha sido un bonito y corto capítulo, ¿no te parece? Ahora ha llegado
la hora de las buenas noticias. En el siguiente capítulo vas a escribir las primeras
líneas de código PHP reales.
¿Nervioso? ¿¡Entonces por qué esperar?! Pasa al siguiente capítulo.
4. Aritmética básica
Estoy seguro de que has escuchado que la programación es todo matemáticas. ¿No
es cierto? Ha llegado la hora de las matemáticas. Comencemos.
n ( n )1/2 ( n )1/2
∑ ∑ ∑
ai bi ≤ 2
ai b2i
i=1 i=1 i=1
Ahora, resuelve la X.
Bromeaba de nuevo. De hecho, no hay X en esa ecuación. De hecho, ni siquiera es
una ecuación por lo que ha sido una broma terrible. Lo cierto es, que ni siquiera sé
lo que hace esa ecuación. No somos gurús de las matemáticas (no todos).
Sentencias
Vamos a intentar algo más cercano a mi nivel de matemáticas. Sabes cómo hacer
ficheros PHP y sabes cómo abrir y cerrar etiquetas PHP. Así que saltemos directa-
mente a un fichero PHP. Vamos a llamarlo mates.php. He aquí el contenido.
1 <?php
2 3 + 3;
3 ?>
1 <?php
2 3 + 3;
14
Aritmética básica 15
¡Mucho mejor!
Bueno, en el caso de que tus matemáticas no sean tan buenas como las mías, déjame
ayudarte un poco. Cuando sumas tres y tres, te da seis. Vale, ahora estás listo.
La línea 3 + 3; contiene una sentencia. Es una línea de PHP que será evaluada por
PHP. Normalmente terminan con punto y coma. Así es como se ven ;. Al principio
se te olvidará siempre, pero no te preocupes, pronto estarás incluso terminando tus
frases con ellos;
Dado que ahora entiendes la suma básica, ¿qué piensas que pasará cuando ejecu-
temos el fichero?
Bien, veamos si estás en lo cierto. Ve y ejecuta php mates.php para ver qué ocurre.
¡Vaya! Absolutamente nada. Este lenguaje es estúpido. Dejémoslo. Vale, sigo bro-
meando. Tengo un sentido del humor peculiar, no te preocupes, te acostumbrarás.
¿Por qué no vimos nada en la pantalla? Bueno, eso es porque no le dijimos a PHP
que nos mostrara nada. PHP es obediente. Vamos a decirle que nos de la respuesta.
Usemos echo. Es una construcción del lenguaje que nos permite ver el resultado de
una sentencia.
Vamos a alterar la sentencia para incluir echo.
<?php echo 3 + 3;
Allá vamos. Colocamos echo delante de la sentencia de la que queremos ver el
resultado. Vamos a intentar ejecutar nuestra aplicación de nuevo. Allá vamos.
¡Woohoo! ¡Seis! ¡NO SIETE PUNTO CINCO! Hemos conseguido ver el resultado de
nuestra primera sentencia evaluada con PHP. Maravilloso, ¿no te parece?
Operadores aritméticos
Sé que nuestro ejemplo de 3 + 3 es código sencillo pero pronto nos haremos con
cosas más grandes y mejores. ¿Sabías que hay más operadores aritméticos? Estoy
seguro de que algunos de ellos te suenan de algo.
1 + Suma
2 - Resta
3 * Multiplicación
4 / División
5 % Módulo
Estoy seguro de que habrás visto algunos de esos operadores anteriormente. Sé que
la multiplicación y la división son un poco diferentes a los signos que aprendiste
en el colegio. Esto es común a la mayoría de los lenguajes de programación y
descubrirás que el signo de división es definitivamente más sencillo de escribir
en el teclado. No dejes que te preocupen, antes de que te des cuenta te habrás
acostumbrado a ellos.
Si no has usado el operador ‘Módulo’ anteriormente, es sencillo de explicar. Puede
ser usado para calcular el resto de una división. Por ejemplo, la operación ‘3 % 2’
resultaría en la figura de ‘1’. Se usa normalmente para determinar si un número es
par o impar, dividiéndolo entre dos.
Ahora vamos a darle a PHP algo difícil:
Así que, ¿cuál es el resultado? Bueno, puede ser difícil calcularla en nuestra mente
ya que no sabemos en qué orden calcular. ¿Deberíamos sumar primero? ¿O dividir
primero? Hmm. ¡Difícil!
Por supuesto, en matemáticas aprendemos a usar paréntesis para separar las
ecuaciones. Podemos hacer lo mismo con PHP. Vamos a intentarlo.
Genial, ¿pero eso no es hacer trampas? ¿Qué conseguiríamos sin los paréntesis?
Vamos a quitarlos.
Vaya, esto es algo totalmente distinto. ¿Por qué? Bueno, eso es porque PHP no está
gestionando los operadores en el mismo orden. Vamos a ver el orden en que se
gestionan los operadores.
Este es el orden:
1 * Multiplicación
2 / División
3 % Módulo
4 + Suma
5 - Resta
El operador con la prioridad más alta está en la parte de arriba de la tabla. Esto
significa que cuando PHP examina 4 + 3 * 2 / 1, primero calcula 3 * 2 = 6, luego 6
/ 1 = 6 y finalmente 4 + 6 para obtener 10.
Cuando escribo cosas matemáticas, me gusta añadir paréntesis para evitar confu-
siones. También me parece que ayuda a clarificar lo que se pretende hacer con la
línea, haciendo que sea más legible.
Procedimiento
El código PHP se procesa de manera secuencial. Esto significa que se ejecuta
sentencia a sentencia. Aunque es posible poner más de una sentencia en una línea,
es poco común y el resto de programadores no suelen hacerlo así que ejecutemos
el código línea a línea. Podemos ver esto en acción añadiendo más sentencias a
nuestro fichero. Vamos a probar lo siguiente:
Aritmética básica 18
1 <?php
2 echo 2 + 2;
3 echo 3 + 3;
4 echo 4 + 4;
5 echo 5 + 5;
1 46810
¡Cálmate lector! Le dijimos a PHP que mostrara los resultados, nada de espacios
ni nuevas líneas. Esto significa que PHP ha calculado los valores correctamente. Si
añadimos espacios, el resultado que PHP nos ha dado es…
4 6 8 10
…ahora vemos que los cálculos son, de hecho, correctos. Únicamente ocurre que
PHP es muy obediente y ha mostrado los valores uno detrás del otro.
He mencionado con anterioridad que PHP es un lenguaje flexible. Vamos a ver eso,
¿no te parece? Hasta ahora, nuestras sentencias solo tienen un espacio entre cada
‘palabra’ (o número). Vamos a añadir algunos espacios adicionales en un formato
inconsistente para ver qué ocurre. He aquí nuestro código modificado.
1 <?php
2 echo 2 + 2;
3 echo 3 +3;
4 echo 4+4;
5 echo 5+ 5 ;
Aunque esto no es que sea muy bonito, si ejecutaras el código, descubrirías que el
código funciona a la perfección. A PHP no le importan la cantidad de espacios en
blanco entre las palabras y el código. Símplemente lidia con ellos.
Observarás que algunas de las operaciones aritméticas, por ejemplo 4+4 no ne-
cesitan un espacio para nada. Aunque es cierto, no es consistente en todas las
variaciones. Por ejemplo, considera lo siguiente:
Aritmética básica 19
1 <?php
2 echo5 + 5;
Si intentas ejecutar esto, descubrirás que PHP lanzará un error ‘Use of undefined
constant echo5 - assumed ‘echo5’. Esto es porque PHP no sabe qué es la palabra
echo5 ni lo que debe hacer. Por este motivo, lo mejor es colocar al menos un espacio
entre cada ‘palabra’.
Por otro lado, las sentencias. Si fuéramos masoquistas, podríamos elegir poner cada
sentencia en la misma línea. He aquí un ejemplo.
1 <?php
2 echo
3 2
4 +
5 2
6 ;
1 <?php
2 echo (3 * 5) / (7 / 12) * (7 * 6) + (7 % 3)
3 + (6 + 7) * (12 / 3);
Aquí hay matemáticas serias, pero espero que lo veas más sencillo de leer.
Merece la pena destacar que puedes también dejar líneas en blanco para añadir
claridad. He aquí un ejemplo.
1 <?php
2 echo 3 + 2;
3 echo 7 * 7;
4 echo 5;
Así que, como ves, PHP puede ser extremadamente flexible. Pero no te olvides de
añadir un punto y coma al final de la línea, ya que nunca te perdonará.
JAMÁS.
5. Variables y asignaciones
Ahora estamos llegando al quid de la cuestión. Las variables son una parte extre-
madamente útil del conjunto de herramientas del programador. Comencemos, ¿no
te parece?
Pequeñas cajas
Quiero que pienses en las variables como en pequeñas cajas en las que metemos
cosas. Las variables son palabras que comienzan con el símbolo del dolar: $. Veamos
un ejemplo.
1 <?php
2
3 $tres = 3;
Si ejecutas el script que hemos creado arriba, verás que PHP no nos muestra nada.
Esto es ya que la asignación es eso, una asignación y nada más. No le estamos
pidiendo a PHP que nos muestre nada. No obstante, ahora que hemos asignado
la variable $tres al valor 3, podemos usar echo sobre la variable.
21
Variables y asignaciones 22
1 <?php
2
3 // Asignamos el valor
4 $tres = 3;
5
6 // Mostramos el valor
7 echo $tres;
Primero asignamos nuestra variable y luego usamos la sentencia echo para mostrar
el valor que contiene. Si ejecutamos nuestro código ahora, veremos un 3 como
salida.
Esto es genial porque significa que podemos ponerles motes a las cosas: ya sa-
bes, igual que a esos molestos gamberros del colegio. Por ejemplo, el número
‘3.14159265359’ es un número precioso para los amantes de los círculos, pero es
difícil de recordar, ¿no te parece? Vamos a ponerle un mote. Vamos a llamarlo…
Pedrín. No espera, tengo una idea mejor.
1 <?php
2
3 $pi = 3.14159265359;
Ahora hemos creado una nueva variable llamada $pi, que contiene el valor 3.14159265359.
Esto significa que podemos usar la variable en cualquier lugar de nuestro código
para hacer cálculos. He aquí algunos ejemplos.
1 <?php
2
3 // Asignando pi a una variable.
4 $pi = 3.14159265359;
5
6 // Realizar cálculos de circunferencias.
7 echo $pi * 5;
8 echo $pi * 3;
Variables y asignaciones 23
Tras asignar $pi podemos usarla en otras sentencias para realizar cálculos.
Podemos declarar y asignar tantas variables como quieras, pero hay varias reglas
que tenemos que seguir al escoger nombres. Los nombres de las variables pueden
contener números, letras y guiones bajos. No obstante, tienen que comenzar por
una letra o un guión bajo, ¡nunca un número!. Son sensibles a mayúsculas y
minúsculas lo cuál significa que $panda es diferente a $pAnda. He aquí un par de
ejemplos.
1 <?php
2
3 $panda = 1; // Legal
4 $Panda = 1; // Legal
5 $_panda = 1; // Legal
6 $pan_da = 1; // Legal
7 $pan_d4 = 1; // Legal
8 $pan-da = 1; // Ilegal
9 $4panda = 1; // Ilegal
Aunque los nombres de las variables pueden contener guiones bajos y comenzar
con letras mayúsculas, es una práctica común usar el formato llamado camelCasing.
No te preocupes, no hacen falta camellos.
Los nombres CamelCase, comienzan con un carácter en minúscula. Las variables
que tienen varias palabras, tendrán las primeras letras de estas en mayúsculas. Por
si no queda claro, he aquí algunos ejemplos.
1 <?php
2
3 $earthWormJim
4 $powerRangers
5 $bobEsponja
1 <?php
2
3 echo $panda = 1337;
1 <?php
2
3 $primerPanda = $segundoPanda = $tercerPanda = 1337;
El fragmento de arriba puede parecer un poco alocado, pero tiene más sentido
si lo lees de derecha a izquierda. El $tercerPanda es asignado al valor 1337, luego
el $segundoPanda es asignado al valor del $tercerPanda, y finalmente el $primerPanda
es asignado al valor del $segundoPanda. Esto significa que todas las variables están
asignadas al valor final. Bonito, ¿no te parece?
De mi tipo
Hasta ahora hemos estado trabajando con números. Sería aburrido si solo pudiéra-
mos trabajar con valores de ese tipo. Creo que es el momento de examinar las otras
posibilidades. He aquí algunos de los valores comunes usados en aplicaciones PHP.
• entero (integer)
• coma flotante (float)
• booleano (boolean)
• cadena (string)
• null
• matriz (array)
Hay unos pocos más pero no vamos a complicarnos por ahora. Tenemos que
aprender poco a poco. ¡No quieres una sobrecarga de conocimiento!
Echemos un vistazo a estos tipos uno a uno. Primero tenemos los enteros. Son
números entero, los hemos estado usando en nuestros ejemplos anteriores.
Variables y asignaciones 25
1 <?php
2
3 $panda = 2;
4 $pandaRojo = -23;
Los números de coma flotante son los que tienen decimales, y por ende contienen
fracciones. Pueden ser usados de manera similar a los enteros. De hecho, ya hemos
usado uno. ¿Recuerdas a nuestro amigo $pi? Era uno de ellos. Sigamos, ¿no te
parece?
1 <?php
2
3 $panda = 2.34;
4 $pandaRojo = -23.43;
Los booleanos, son tipos de datos binarios. ¡No te preocupes! No vamos a hacer
nada de aritmética binaria. Es solo una forma de expresar que pueden contener
dos valores. Un booleano puede ser o true (verdadero) o false (falso). Más tarde,
echaremos un ojo a cómo estos valores pueden ser usados para alterar el flujo de
nuestra aplicación.
1 <?php
2
3 $panda = false;
4 $pandaRojo = true;
Lo siguiente son los valores de ‘cadena’. Las cadenas son usadas para almacenar
una palabra, un caracter, o una secuencia de texto. Las cadenas son especiales por
lo que he decidido dedicarles un capítulo corto. ¡Volveremos a ellas!
Variables y asignaciones 26
1 <?php
2
3 $panda = 'Panda normal';
4 $pandaRojo = "Panda rojo";
1 <?php
2
3 $noPanda = null;
Las matrices o vectores son otro tipo de valor especial. De hecho, es mi favorito.
Tanto es así que tienen un capítulo completo dedicados. Por ahora, todo lo que
necesitas saber es que es un valor que contiene una colección de otros valores.
¡Vaya! ¡Inception!
1 <?php
2
3 $cuentaLosPandas = [1, 2, 3];
4 $masPandas = array(5, 6, 7, 8);
Asignación avanzada
En un capítulo anterior descubrimos los operadores que podemos usar en otras
variables, y aprendimos sobre el operador de asignación. Así que, ¿qué pasa si los
ponemos juntos? Bueno, crearemos un agujero negro y consumiremos el universo
al completo. Me siento aventurero, ¿lo descubrimos?
Variables y asignaciones 27
1 <?php
2
3 // Establece un valor
4 $panda = 3;
5
6 // Intenta crear un agujero negro
7 $panda += 1;
8
9 // Mostremos el valor del universo
10 var_dump($panda);
Primero establecemos una variable al valor entero tres. Luego, hemos añadido el
operador de suma frente al operador de asignación y le hemos facilitado el valor
entero de uno.
Podemos usar la función var_dump() (¡pronto veremos más sobre las funciones!) para
saber no solo el valor de una variable, si no también su tipo.
¿Qué obtenemos de salida?
1 int(4)
¡Genial! El universo ha sido salvado. ¿Parece que tenemos un cuatro? Supongo que
tiene sentido. Sabemos que $a + $b devuelve un valor sin asignarlo, y sabemos que
el operador de asignación es usado para establecer el valor de las variables. Así que
esto hace ambas cosas. Le estamos diciendo a PHP que establezca el valor de $panda
a su valor actual, más uno.
Puedes usar esta sintaxis con cualquiera de los operadores que ya hemos descu-
bierto. Solo hay una pega. No coloques el operador al otro lado del signo igual.
Confía en mi, lo he intentado. Se abrió un portal a un mundo oscuro, criaturas
mitad dinosaurio, mitad humana aparecieron y empezaron a sembrar el caos en
Cardiff. Solo con la ayuda de un lanzallamas casero (que construí usando PHP) pude
derrotar a las desagradables criaturas. Odiaría ver que te ocurre a ti. ¡Ten cuidado
por favor!
Luego tenemos el operador incremental. De hecho, no nos olvidemos del operador
decreciente. Suele tener menos atención. Ya que estamos, vamos a mostrar sus
habilidades.
Me gusta poner un ejemplo. Pongamos el siguiente:
Variables y asignaciones 28
1 <?php
2
3 // Establece un valor
4 $panda = 3;
5
6 // Reducimos el valor
7 $panda--;
8
9 // Mostramos el valor
10 var_dump($panda);
Ahí, en el medio, ¿lo ves? El precioso operador decreciente. Colocamos dos signos
de menos tras la variable. Así que, ¿qué hace esto? He aquí el resultado.
1 int(2)
Como podemos ver, el valor de $panda ha sido reducido en uno. Es un atajo rápido
para reducir un valor. De manera análoga, podemos usar ++ para aumentar un
valor. No obstante, estos son los dos únicos operadores que funcionan. No intentes
usar el de multiplicación. ¡No funcionará como tú esperas!
Me pregunto qué ocurrirá si colocamos el operador antes del valor. Vamos a
intentarlo, ¿vale?
1 <?php
2
3 // Establece un valor
4 $panda = 3;
5
6 // Reducimos el valor
7 --$panda;
8
9 // Mostramos el valor
10 var_dump($panda);
1 int(2)
Oh, es la misma. Bueno, eso ha sido aburrido, ¿no te parece? Lo cierto es que
conozco un pequeño secreto. No es lo mismo. El valor parece idéntico pero el
ejemplo que he puesto no le hace justicia.
Vamos a elaborar un ejemplo diferente. Mostraremos el estado del valor antes de
usar el operador. Examinaremos el resultado cuando la operación se haya usado, y
finalmente, examinaremos el valor después de que el operador se haya usado. No
esperamos que el valor de después sea diferente.
1 <?php
2
3 // Establece un valor
4 $panda = 3;
5
6 // Mostramos ANTES
7 var_dump($panda);
8
9 // Mostramos DURANTE.
10 var_dump(--$panda);
11
12 // Mostramos DESPUES
13 var_dump($panda);
1 int(3)
2 int(2)
3 int(2)
Así pues, el primer valor es tres. Deberíamos habernos esperado eso, después de
todo, lo único que hemos hecho ha sido establecerlo, ¿verdad? El resultado de la
sentencia usando el operador es igual a dos. El valor resultante también es dos. Eso
significa que el valor se reduce en la segunda línea.
Vamos a mover el operador al otro lado del valor. Así:
Variables y asignaciones 30
1 <?php
2
3 // Establece un valor.
4 $panda = 3;
5
6 // Mostramos ANTES
7 var_dump($panda);
8
9 // Mostramos DURANTE
10 var_dump($panda--);
11
12 // Mostramos DESPUES
13 var_dump($panda);
Ahora echemos un vistazo al resultado. Mira con cuidado para ver la diferencia.
1 int(3)
2 int(3)
3 int(2)
1 <?php
2
3 // Establece un valor
4 $panda = 3;
5
6 // Asigna, y luego incrementa
7 $pandaFriend = $panda++;
Lo que hemos hecho aquí es ahorrarnos una línea. Es una especie de atajo. He aquí
cómo se vería si no usáramos el operador.
1 <?php
2
3 // Establece.
4 $panda = 3;
5
6 // Asigna.
7 $pandaFriend = $panda;
8
9 // Incrementa.
10 $panda = $panda + 1;
Más adelante, hablaremos de los bucles y descubrirás otro uso para este operador.
En el próximo capítulo hablaremos de las cadenas.