1. Saludo simple
Crea un archivo saludo.php que defina una variable $nombre con tu nombre y muestre por pantalla un saludo del tipo «Hola, Ana. Bienvenido a PHP».
Contenidos: variables, cadenas, echo.
Practicar los elementos básicos de la sintaxis de PHP —variables, tipos de datos, operadores, comentarios, directivas, estructuras de decisión, bucles, arrays y funciones— mediante una colección de ejercicios de dificultad creciente.
.php que combina HTML y código PHP embebido.include o require.<p>, <ul>, <table>...) para practicar la mezcla de PHP y HTML.display_errors durante el desarrollo para detectar fallos.Crea un archivo saludo.php que defina una variable $nombre con tu nombre y muestre por pantalla un saludo del tipo «Hola, Ana. Bienvenido a PHP».
Contenidos: variables, cadenas, echo.
Define variables para el nombre, la edad, la altura y si la persona es alumno o no. Muestra una ficha con esos datos en una lista HTML. Indica el tipo de cada variable usando gettype() o var_dump().
Contenidos: variables, tipos de datos, concatenación, HTML embebido.
Dados dos números enteros almacenados en variables, muestra su suma, resta, multiplicación, división, resto y potencia. Muestra también el resultado de comparar si el primero es mayor que el segundo.
Contenidos: operadores aritméticos, operadores de comparación.
Partiendo de las cadenas "123", "3.14" y "abc", conviértelas a entero y a flotante usando casting. Muestra el valor y el tipo resultante en cada caso. Comenta brevemente qué ocurre con la cadena no numérica.
Contenidos: tipos de datos, conversión de tipos, comentarios.
Define una variable con el precio de un producto sin IVA y otra con el porcentaje de IVA. Calcula y muestra el importe del IVA y el precio final. Usa operadores de asignación compuesta donde tenga sentido.
Contenidos: operadores aritméticos y de asignación, variables.
Dado un número entero en una variable, indica si es par o impar. Después, modifica el valor de la variable para comprobar que el programa sigue funcionando.
Contenidos: operador módulo, if...else.
Dada una nota numérica entre 0 y 10, muestra la calificación correspondiente: insuficiente, suficiente, bien, notable o sobresaliente. Resuélvelo primero con if...elseif...else y después con switch o match.
Contenidos: estructuras de decisión.
Dado un número del 1 al 7 en una variable, muestra el nombre del día correspondiente. Si el número está fuera de rango, muestra un mensaje de error. Resuélvelo con switch.
Contenidos: switch, operadores lógicos.
Dado un número entero, muestra su tabla de multiplicar del 1 al 10 dentro de una tabla HTML. Usa un bucle for.
Contenidos: bucles, HTML embebido.
Calcula la suma de todos los números enteros del 1 al 100 usando un bucle while. Después, repite el cálculo con un bucle for y comprueba que el resultado coincide.
Contenidos: bucles while y for, operadores de asignación.
Dado un número entero N, muestra todos los números pares desde 0 hasta N separados por comas. Usa un bucle y la estructura de control continue para saltar los impares.
Contenidos: bucles, continue, operador módulo.
do...whileMuestra una cuenta atrás desde 10 hasta 1 usando un bucle do...while. Al finalizar, muestra el mensaje «¡Despegue!».
Contenidos: bucle do...while.
Crea un array con al menos cinco nombres de frutas. Recórrelo con foreach y muestra cada fruta en un elemento de una lista HTML. Indica también el número total de frutas con count().
Contenidos: arrays indexados, foreach, count().
Crea un array asociativo con los datos de un alumno: nombre, edad, ciclo y nota media. Recórrelo con foreach mostrando cada clave y su valor en una tabla HTML de dos columnas.
Contenidos: arrays asociativos, foreach con clave y valor.
Dado un array de números enteros, calcula y muestra el máximo, el mínimo, la suma y la media. Puedes usar las funciones max(), min(), array_sum() y count().
Contenidos: arrays, funciones de arrays, operadores aritméticos.
Crea un array multidimensional con al menos tres alumnos, cada uno con nombre, edad y nota. Recórrelo con foreach anidados y muestra los datos en una tabla HTML con una fila por alumno.
Contenidos: arrays multidimensionales, foreach anidados, HTML embebido.
Crea una función saludar($nombre) que devuelva una cadena de saludo. Llámala con tres nombres distintos y muestra los resultados. Añade un valor por defecto para el parámetro.
Contenidos: funciones, parámetros, valores por defecto, return.
Crea tres funciones: esPar($n), factorial($n) y esPrimo($n). Cada una debe devolver un valor booleano o numérico. Pruébalas con varios valores y muestra los resultados en una lista.
Contenidos: funciones, bucles, estructuras de decisión, tipos de retorno.
Crea un archivo con una variable global $contador inicializada a 0 y una función incrementar() que la incremente usando global. Llama a la función varias veces y muestra el valor final. Después, crea otra función con una variable static que cuente cuántas veces se ha llamado y compárala con la anterior.
Contenidos: ámbito de variables, global, static.
Crea un archivo datos.php que contenga un array multidimensional con información de varios productos (nombre, precio, stock y categoría). En otro archivo informe.php, inclúyelo con require y genera un informe HTML que:
Contenidos: todos los anteriores y .
Crea una función intercambiar(&$a, &$b) que intercambie el valor de dos variables pasadas por referencia. Después de llamarla, comprueba que los valores originales han cambiado.
Contenidos: funciones, paso por referencia, variables.
Crea una función estadisticas(array $numeros) que devuelva un array asociativo con el mínimo, el máximo, la suma y la media de un array de números. Si el array está vacío, la función debe lanzar una excepción. Llámala y muestra el resultado.
Contenidos: funciones, arrays, throw, excepciones.
Crea una función recursiva factorial($n) que calcule el factorial de un número entero. La función debe lanzar una excepción si el número es negativo o si supera un límite razonable (por ejemplo, 20). Captura la excepción y muestra el mensaje correspondiente.
Contenidos: funciones recursivas, estructuras de decisión, excepciones.
Crea una excepción personalizada ErrorDeValidacion y una función validarAlumno($nombre, $edad, $nota) que compruebe que el nombre no está vacío, que la edad está entre 0 y 120 y que la nota está entre 0 y 10. Si algún dato no es válido, lanza la excepción con un mensaje descriptivo. Prueba la función con datos correctos e incorrectos.
Contenidos: excepciones personalizadas, funciones, operadores lógicos, validación de datos.
finallyCrea una función leerArchivo($ruta) que intente abrir un archivo con fopen() y leer su contenido línea a línea. Si el archivo no existe, lanza una excepción. Usa un bloque finally para garantizar que el archivo se cierra con fclose() si se llegó a abrir. Prueba la función con un archivo existente y con una ruta inexistente.
Contenidos: funciones, manejo de archivos básico, try...catch...finally, excepciones.
Crea una función sumar_traza que reciba una matriz bidimensional de números y devuelva la suma de los elementos de su diagonal principal (desde arriba a la izquierda hasta abajo a la derecha). Si algún elemento de la diagonal no fuera de tipo numérico, la función lanzará una excepción.
Contenidos: todos los anteriores: variables, tipos, operadores, directivas, estructuras de decisión, bucles, arrays, funciones e inclusión de archivos.
Crea una función totalizar que reciba una matriz bidimensional de números y devuelva otra matriz (sin modificar la original) con una columna adicional en la que figurará la suma de cada fila y una fila adicional en la que figurará la suma de cada columna. Si algún elemento de la matriz no fuera de tipo numérico, la función lanzará una excepción.
Contenidos: todos los anteriores: variables, tipos, operadores, directivas, estructuras de decisión, bucles, arrays, funciones e inclusión de archivos.
Crea una función extraer que reciba una matriz bidimensional y un array con dos coordenadas, cada una formada por un array de dos números enteros. La función devolverá la submatriz indicada por las coordenadas. Así, si la matriz recibida es de 4 filas y 5 columnas y la matriz de coordenadas recibida es [[0,2],[2,4]] la función deberá devolver la submatriz formada por los elementos que están desde la primera fila (0), tercera columna (2) hasta la tercera fila (2) y quinta columna (4). Si las coordenadas no fueran correctas (fuera de la matriz) la función lanzará una excepción..
Contenidos: todos los anteriores: variables, tipos, operadores, directivas, estructuras de decisión, bucles, arrays, funciones e inclusión de archivos.