2. El Lenguaje PHP (básico)

Este es un tema de iniciación al lenguaje PHP. Se busca tener los conocimientos del lenguaje para poder realizar los ejercicios básicos de Ejercicios Genéricos de Programación

Me baso en el excelente tutorial de JavaTpoint para hacer referencia a cada uno de los elementos del lenguaje. Es simplemente un esquema ordenado del tutorial. Y puedes consultar también el excelente curso de Aitor Medrano

Requisitos Previos

Necesitas unos conocimientos básicos previos de aprender a programar. Si no los tienes, tampoco pasaría nada pero necesitarás más tiempo para adquirir los conocimientos de cada sesión de clase.

Está organizado en 8 talleres de unas 3 sesiones de clase. En total unas 24 sesiones de clase más tu trabajo en casa.

La dedicación depende del conocimiento previo, motivación y capacidad de aprendizaje del estudiante para esa sesión en concreto.

2.1. El lenguaje PHP

  1. Visión General

    1. Historia

    2. Características

    3. Cierto conflicto: a (casi) nadie le gusta, pero todos lo utilizan

  2. Ejemplos de Código:

    1. Dentro del DOM como etiqueta ?php

    2. Como aplicación (php genera todo el html)

  3. La documentación oficial está en el Manual PHP

  4. Introducción PHP -> php-tutorial

    1. Mi primer programa:

      1. Instalarlo (Servidor de Aplicaciones PHP) -> install-php

      2. Crear un programa php dentro de un elemento HTML -> run-php-code-in-xampp

      3. Generar una página dinámica: -> php-echo / php-print / Diferencias php-echo-and-print-statements

      4. Comentar el código -> php-comments

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.2. Variables, Datos y Operadores

  1. Variables en PHP -> php-variables

  2. Ámbitos de las variables -> php-variable-scope

    1. Local (lo habitual e ideal)

    2. Global (con atención)

    3. Estática (salvo causa de fuerza mayor)

  3. Operadores $ y $$ -> php-dollar-doubledollar

  4. Constantes, se pueden definir ( php-constants) o usar unas predefinidas (php-magic-constants)

  5. Tipos de datos (php-data-types):

    1. Escalares: boolean / integer / float / string (php-string)

    2. Compuestos: array / object

    3. Especiales: resource / NULL

  6. Operadores (-> php-operators)

    1. Se usan caracteres especiales para las diferentes operaciones

    2. Se clasifican en diferentes tipos (aritméticos, de comparación, de asignación, …)

    3. Hay operadores unarios, binarios y ternarios, según los operandos que participen

    4. Si hay varios operadores, mejor usar paréntesis para definir la precedencia

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.3. Estructuras de Control y Repetición

  1. De Control:

    1. -> php-if-else

    2. -> php-switch

  2. De Repetición:

    1. -> php-for-loop

    2. -> php-foreach-loop

    3. -> php-while-loop

  3. Para modificar el flujo (pensar bien antes de usar):

    1. -> php-break

    2. -> php-continue

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.4. Programación Modular (Funciones)

  1. Repasa los conceptos de funciones, procedimientos, parámetros/argumentos …

  2. Para unos parámetros (o argumentos) de entrada (php-parameterized-function) la función devuelve una salida -> php-functions

  3. Los parámetros pueden pasarse:

    1. por valor (-> php-call-by-value)

    2. o (pensar antes de usar) por referencia (usando & php-call-by-reference)

  4. Los parámetros pueden tener unos valores predeterminados (php-default-argument-values-function) cuando no se especifican

  5. E incluso tener un número variable de argumentos de entrada php-variable-length-argument-function

  6. PHP admite recursividad, es decir, llamar a la función dentro de la función (ojo a definir el caso base) -> php-recursive-function

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.5. Cadenas de Caracteres (Strings)

  1. String = secuencia de caracteres -> php-string

  2. Con un montón de funciones para gestionarlas -> php-string-functions

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.6. Arrays

  1. Son una estructura de datos muy utilizada (y una de las grandes ventajas de PHP)

  2. Es un mapa que ordena valores en función de claves -> php-array

  3. Tipos:

    1. indexados. La clave es un número y está ordenado

    2. asociativos. La clave es cualquier cosa

    3. multidimensionales. Array de arrays

  4. Y hay un montón de funciones para gestionarlos -> php-array-functions

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.7. Ejemplos de Funciones

  1. Para gestionar cadenas de caracteres -> php-string-functions

  2. Funciones matemáticas -> php-math

  3. Puedes usar tu librería propia e incluirla en tu programa -> php-include-file

Actividad T02. Ejercicios Básicos de programación con PHP

Puedes usar el editor online de W3Schools, repl o tu propio entorno. La estrategia para practicar sería:

  1. Pruebas con lo propone el tutorial.

  2. Puedes probar con un reto distinto (Revisa Ejercicios Genéricos de Programación)

2.8. Uso de regexp

  1. Regexp ( Expresiones regulares ) son una secuencia de caracteres que define un patrón de búsqueda -> regex

    1. Muy útil tanto para buscar como para reemplazar texto (que es el tipo de datos más común en la web)

    2. Algunos caracteres tienen un comportamiento especial (por ejemplo el punto), el resto se comportan como lo que son (por ejemplo una a)

    3. Toda expresión regular se comporta como un autómata finito, es decir, tiene un flujo de análisis de izquierda a derecha

  2. Caracteres Especiales

    1. Cualquier caracter (.) vs un caracter concreto (por ejemplo la a) vs un caracter de un rango (por ejemplo [abc]])

    2. Los corchetes[] también sirven para que busque el caracter literal o usar rangos con el símbolo - . P.ej [a.], que buscaría el caracter . o [a-d] que buscaría a, b,c o d.

    3. Los caracteres cuantificadores (?, + , *) se usan para expresar la cantidad de caracteres que pueden aparecer. Se puede hasta especificar la cantidad mínima y máxima concreta con caracter llave. P.ej. {3,10}

    4. La alternancia se puede usar con corchete con el carácter |. Pero | es más útil porque sirve para expresiones concretas, p.ej (hola|adios)

    5. Se pueden definir principio (^) y fin ($) de línea. ^tiene un comportamiento especial dentro de corchetes (es el operador not)

    6. Para agrupar se usan paréntesis (). Cada grupo a veces se puede numerar o ponerle un nombre (depende de la aplicación)

  3. Algunos tutoriales muy buenos:

    1. Uno completo en video (pero mejor no usar agrupaciones de caracteres):

    1. Uno para leer

    2. Uno del soporte de ayuda de Google

  4. Diseñar y usar regexp:

    1. Hay muchos ejemplos muy útiles ( por ejemplo aquí )

    2. Si ya te quieres poner a profundizar, puedes revisar REGEX101

    3. En PHP se puede usar de diferentes maneras ( puedes probar )

  5. Ojo que hay ligeras variaciones entre el uso de regexp en diferentes aplicaciones sobre todo con la agrupación de caracteres genéricos (digitos, palabras, líneas, etc).

Actividad T02-A08. Aprender Expresiones Regulares

Hay millones de ejemplos, pero por ponerte 10 ejercicios. ¿Qué cadenas de texto encontrarían las siguientes regexp?

  1. hola

  2. h.?a

  3. h+b.

  4. [2-4]?[3-9ag]

  5. aju{2,8}m[-.]z

  6. (ad)+juju.[0-9]?-

  7. (ho|la)?[4-7zu]

  8. ([0-4][0-9]|5[0-2])[0-9]{3} . Códigos Postales España

  9. ^.{3,32}#[0-9]{4}$ . Usuario Discord

  10. (b25[0-5]|b2[0-4][0-9]|b[01]?[0-9][0-9]?)(.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3} . Dirección ipv4. b es un delimitador de palabra «boundary».