Aprende PHP
Un curso de PHP online, gratis e interactivo. Escribes PHP en cada lección, con pistas de IA cuando algo lanza un warning y un certificado gratis al terminar.
30,264+ codders inscritos
- Apto para principiantes
Ayuda de codificación con IA
Lecciones interactivas prácticas
Narración de audio en cada lección
Cuestionarios para poner a prueba tu conocimiento
Certificado gratuito de finalización
Programa
Sección 1
Fundamentos
Empezar secciónEmpezarExpandirContraerConstruye una base sólida con conceptos esenciales y habilidades básicasIntroduction to PHP
5 lecciones331- 01The PHP LanguageReto
- 02Hello World!RetoQuiz
- 03Tags and StatementsQuiz
- 04CommentsQuiz
- 05The new lineRetoQuiz
Variables and Data Types
9 lecciones663- 01NumbersRetoQuiz
- 02Strings and QuotesRetoQuiz
- 03BooleansQuiz
- 04Naming ConventionsQuiz
- 05Recap - Variable InitReto
- 06Empty VariablesQuiz
- 07String ConcatenationRetoQuiz
- 08Getting User InputRetoQuiz
- 09Cast to Different TypesRetoQuiz
Basic Operators
8 lecciones852- 01Arithmetic OperatorsRetoQuiz
- 02Modulo OperatorRetoQuiz
- 03Exponentiation OperatorRetoQuiz
- 04Combined AssignmentRetoQuiz
- 05Increment/DecrementRetoQuiz
- 06Operator PrecedenceRetoQuiz
- 07Recap - Simple CalculationsReto
- 08String OperatorsRetoQuiz
Comparison & Logical Operators
5 lecciones532- 01Comparison OperatorsRetoQuiz
- 02Equality & IdentityRetoQuiz
- 03Logical Operators Part 1RetoQuiz
- 04Logical Operators Part 2RetoQuiz
- 05Recap - Simple LogicReto
Conditional Logic
6 lecciones639- 01If StatementRetoQuiz
- 02If - ElseRetoQuiz
- 03The Ternary OperatorRetoQuiz
- 04Null Coalescing OperatorRetoQuiz
- 05Switch StatementRetoQuiz
- 06Recap - Making DecisionsReto
Arrays Part 1 - Indexed
7 lecciones645- 01Introduction to ArraysQuiz
- 02Creating Indexed ArraysRetoQuiz
- 03Accessing Elements by IndexRetoQuiz
- 04Modifying Elements by IndexRetoQuiz
- 05Array Size with CountRetoQuiz
- 06Adding Elements to an ArrayRetoQuiz
- 07Recap - Managing a Simple ListReto
Arrays Part 2 - Associative
6 lecciones540- 01Intro to Associative ArraysQuiz
- 02Accessing Values by KeyRetoQuiz
- 03Modifying Values by KeyRetoQuiz
- 04Adding New Key-Value PairsRetoQuiz
- 05Check if Key ExistsRetoQuiz
- 06Recap - Key-Value Data StoreReto
Bucles
7 lecciones746- 01Bucle forRetoQuiz
- 02Bucle whileRetoQuiz
- 03Bucle foreachRetoQuiz
- 04Bucles con claves y valoresRetoQuiz
- 05Sentencia breakRetoQuiz
- 06Sentencia continueRetoQuiz
- 07Resumen - Iterando sobre datosReto
Proyecto: Lista de Tareas Simple
Proyecto7 lecciones1- 01Resumen del Proyecto y DatosReto
- 02Agregando una Nueva TareaProyecto
- 03Mostrando Todas las TareasProyecto
- 04Marcando una Tarea como CompletadaProyecto
- 05Eliminando una TareaProyecto
- 06Filtrando por Estado de CompletaciónProyecto
- 07Manejando Escenarios de Lista VacíaProyecto
Functions
8 lecciones857- 01Declaring & Calling FunctionsRetoQuiz
- 02Function ParametersRetoQuiz
- 03Returning ValuesRetoQuiz
- 04Default Parameter ValuesRetoQuiz
- 05Type Declarations for ParamsRetoQuiz
- 06Return Type DeclarationsRetoQuiz
- 07Variable ScopeRetoQuiz
- 08Recap - Creating Reusable CodeReto
Final Challenges
3 lecciones3- 01Challenge - Factorial CalcReto
- 02Challenge - Longest WordReto
- 03Challenge - Vowel CounterReto
Sección 2
Lógica y Flujo
Empezar secciónEmpezarExpandirContraerDesarrolla habilidades de resolución de problemas y crea programas dinámicos e interactivosFunciones avanzadas
9 lecciones965- 01Funciones anónimasRetoQuizAudio
- 02Closures y 'use'RetoQuizAudio
- 03Funciones de flechaRetoQuizAudio
- 04Funciones callbackRetoQuizAudio
- 05Uso de 'call_user_func'RetoQuizAudio
- 06Funciones variablesRetoQuiz
- 07Paso por referenciaRetoQuiz
- 08Funciones recursivasRetoQuiz
- 09Resumen: Miscelánea de funcionesReto
Manipulación avanzada de arrays
10 lecciones1066- 01Agregar con 'array_push'RetoQuiz
- 02Eliminar con 'array_pop'RetoQuiz
- 03Agregar con 'array_unshift'RetoQuiz
- 04Eliminar con 'array_shift'RetoQuiz
- 05Fusionar arrays indexadosRetoQuiz
- 06Fusionar arrays asociativosRetoQuiz
- 07Extraer con 'array_slice'RetoQuiz
- 08Valores con 'in_array'RetoQuiz
- 09Claves con 'array_search'RetoQuiz
- 10Resumen: Ejercicio de PlaylistReto
Ordenar Arrays
7 lecciones747- 01Ordenar arrays indexados de forma ascendenteRetoQuiz
- 02Ordenar arrays indexados de forma descendenteRetoQuiz
- 03Ordenar arrays asociativos por valorRetoQuiz
- 04Ordenar arrays asociativos por claveRetoQuiz
- 05Ordenación por orden naturalRetoQuiz
- 06Ordenación personalizada con 'usort'RetoQuiz
- 07Resumen: Ordenar tablas de clasificaciónReto
Arreglos multidimensionales
6 lecciones639- 01Crear un arreglo 2DRetoQuiz
- 02Acceder a elementos de un arreglo 2DRetoQuiz
- 03Modificar elementos de un arreglo 2DRetoQuiz
- 04Iterar con bucles anidadosRetoQuiz
- 05Arreglos asociativos 2DRetoQuiz
- 06Resumen: Ejercicio de cuadrícula simpleReto
Registro de Calificaciones
6 lecciones6- 01Configuración del Proyecto: Estructura de DatosReto
- 02Agregar un Nuevo EstudianteReto
- 03Agregar una Calificación a un EstudianteReto
- 04Calcular el Promedio del EstudianteReto
- 05Encontrar al Mejor EstudianteReto
- 06Generar un Reporte de CalificacionesReto
Funciones de array de orden superior
7 lecciones745- 01Transformación con 'array_map'RetoQuiz
- 02'array_map' con funciones personalizadasRetoQuiz
- 03Filtrado con 'array_filter'RetoQuiz
- 04'array_filter' con funciones personalizadasRetoQuiz
- 05Reducción con 'array_reduce'RetoQuiz
- 06Recorrido con 'array_walk'RetoQuiz
- 07Resumen: Procesamiento de datosReto
Trabajando con fechas y horas
6 lecciones539- 01La función 'date()'Quiz
- 02Timestamps de Unix con 'time()'RetoQuiz
- 03Introducción al objeto DateTimeRetoQuiz
- 04Formateo de objetos DateTimeRetoQuiz
- 05Modificación de objetos DateTimeRetoQuiz
- 06Resumen: Cálculos con fechasReto
Manejo de errores y excepciones
7 lecciones650- 01Entendiendo los errores de PHPQuiz
- 02El bloque 'try...catch'RetoQuiz
- 03El bloque 'finally'RetoQuiz
- 04Lanzar una excepciónRetoQuiz
- 05Crear una excepción personalizadaRetoQuiz
- 06Usar una excepción personalizadaRetoQuiz
- 07Resumen: Validación de entradasReto
Planificador de eventos
Proyecto6 lecciones1- 01Datos del eventoReto
- 02Agregar un nuevo eventoProyecto
- 03Listar próximos eventosProyecto
- 04Ordenar eventos por fechaProyecto
- 05Filtrar eventos por mesProyecto
- 06Mostrar una cuenta regresivaProyecto
Desafíos finales
4 lecciones4- 01Desafío: Verificador de palíndromosReto
- 02Desafío: Frecuencia de caracteresReto
- 03Desafío: Total del carrito de comprasReto
- 04Desafío: Filtro de elementos únicosReto
Sección 3
Programación Orientada a Objetos
Empezar secciónEmpezarExpandirContraerDescubre cómo organizar el código con clases, objetos y estructuras reutilizablesFundamentos de OOP
9 lecciones969- 01Archivos externosRetoQuiz
- 02Introducción a OOPRetoQuiz
- 03Clases vs ObjetosRetoQuiz
- 04La palabra clave $thisRetoQuiz
- 05MétodosRetoQuiz
- 06PropiedadesRetoQuiz
- 07Constructor (__construct)RetoQuiz
- 08Destructor (__destruct)RetoQuiz
- 09Resumen - Calculadora simpleReto
Espacios de nombres y Autoloading
5 lecciones534- 01Introducción a los espacios de nombresRetoQuiz
- 02La palabra clave useRetoQuiz
- 03Estándar de Autoloading PSR-4RetoQuiz
- 04Autoloader de ComposerRetoQuiz
- 05Resumen - Proyecto organizadoReto
Propiedades de clase
6 lecciones644- 01Propiedades de instancia vs. estáticasRetoQuiz
- 02Constantes en clasesRetoQuiz
- 03Métodos y propiedades estáticosRetoQuiz
- 04Propiedades privadas y protegidasRetoQuiz
- 05Propiedades de solo lectura (PHP 8.1)RetoQuiz
- 06Resumen - Gestor de cuenta bancariaReto
Herencia
6 lecciones644- 01Herencia básicaRetoQuiz
- 02La palabra clave parent::RetoQuiz
- 03Sobrescritura de métodosRetoQuiz
- 04La palabra clave finalRetoQuiz
- 05Clases abstractasRetoQuiz
- 06Resumen - Jerarquía de empleadosReto
Interfaces y Contratos
6 lecciones644- 01Introducción a las InterfacesRetoQuiz
- 02Implementación de InterfacesRetoQuiz
- 03Implementación de Múltiples InterfacesRetoQuiz
- 04Interfaz vs Clase AbstractaRetoQuiz
- 05Type Hinting con InterfacesRetoQuiz
- 06Resumen - Calculadora de FormasReto
Polimorfismo
5 lecciones536- 01Sobrescritura de métodos revisadaRetoQuiz
- 02Polimorfismo mediante interfacesRetoQuiz
- 03Type Hinting y tipos de uniónRetoQuiz
- 04Enlace estático tardíoRetoQuiz
- 05Resumen - Procesador de pagosReto
Encapsulamiento
6 lecciones645- 01Público, Protegido, PrivadoRetoQuiz
- 02Modificadores de acceso a fondoRetoQuiz
- 03Getters y SettersRetoQuiz
- 04Ocultamiento de informaciónRetoQuiz
- 05Promoción de constructor (8.0)RetoQuiz
- 06Resumen - Sistema de registros de estudiantesReto
Métodos mágicos
7 lecciones753- 01Introducción a los métodos mágicosRetoQuiz
- 02__toString y __debugInfoRetoQuiz
- 03__get, __set, __isset, __unsetRetoQuiz
- 04__call y __callStaticRetoQuiz
- 05__clone y clonación de objetosRetoQuiz
- 06__serialize y __unserializeRetoQuiz
- 07Resumen - Colección personalizadaReto
Traits
5 lecciones544- 01Introducción a los TraitsRetoQuiz
- 02Uso de múltiples TraitsRetoQuiz
- 03Resolución de conflictos de TraitsRetoQuiz
- 04Métodos abstractos en TraitsRetoQuiz
- 05Traits frente a herenciaRetoQuiz
Conceptos avanzados de POO
7 lecciones761- 01Composición vs. HerenciaRetoQuiz
- 02Inyección de dependenciasRetoQuiz
- 03Clases anónimasRetoQuiz
- 04Enums (PHP 8.1)RetoQuiz
- 05Fibers (PHP 8.1)RetoQuiz
- 06Clonación de objetos a fondoRetoQuiz
- 07Generadores e IteradoresRetoQuiz
Sistema de tipos y manejo de errores
7 lecciones754- 01Declaraciones de tiposRetoQuiz
- 02Tipos anulablesRetoQuiz
- 03Tipos de unión e intersecciónRetoQuiz
- 04Clases de excepciónRetoQuiz
- 05Jerarquía de excepciones personalizadasRetoQuiz
- 06Try, Catch, FinallyRetoQuiz
- 07Resumen - Validador de formulariosReto
Patrones de diseño Parte 1
5 lecciones546- 01Introducción a los patrones de diseñoRetoQuiz
- 02Patrón SingletonRetoQuiz
- 03Patrón FactoryRetoQuiz
- 04Patrón ObserverRetoQuiz
- 05Patrón StrategyRetoQuiz
Patrones de diseño Parte 2
7 lecciones764- 01Patrón CommandRetoQuiz
- 02Patrón AdapterRetoQuiz
- 03Patrón DecoratorRetoQuiz
- 04Patrón Template MethodRetoQuiz
- 05Patrón StateRetoQuiz
- 06Patrón CompositeRetoQuiz
- 07Patrón RepositoryRetoQuiz
Proyecto: Gestión de biblioteca
Proyecto6 lecciones1- 01Descripción general del proyectoReto
- 02Clases de Libros y UsuariosProyecto
- 03Sistema de préstamosProyecto
- 04Funcionalidad de búsquedaProyecto
- 05Interfaz de administradorProyecto
- 06Pruebas e integraciónProyecto
Desafíos finales
4 lecciones4- 01Plataforma de E-LearningReto
- 02Sistema bancarioReto
- 03Desarrollo de personajes de videojuegosReto
- 04Servicio de alquiler de vehículosReto
Cursos de PHP
Cursos prácticos de PHP, gratis para empezar en tu navegador.
Desafíos para principiantes - Practica conceptos básicos
PopularPon a prueba tus conocimientos básicos de programación e intenta resolver estos desafíos; usa cualquier lenguaje que quieras. ¡Feliz programación!
Certificado al completar
- 20
- 20
Problemas de programación
PopularPon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación.
Certificado al completar
- 32
- 31
Problemas de programación: Volumen 2
Pon a prueba tus habilidades de resolución de problemas de programación con los ejercicios de diferentes niveles de dificultad de este curso. Diseñado para programadores con conocimientos previos de la sintaxis básica en cualquier lenguaje de programación, este curso es una extensión del primer volumen de Problemas de programación.
Certificado al completar
- 25
- 24
Pila - Serie de Estructuras de Datos #1
En este curso, aprenderás sobre la estructura de datos Pila, crearás una Pila desde cero usando tu lenguaje preferido y practicarás desafíos de programación con ella.
- 13
- 6
- 1
Heaps y Colas de Prioridad - Serie de Estructuras de Datos #7
NuevoEn este curso, aprenderás sobre la estructura de datos Heap (la base de las colas de prioridad), crearás un MinHeap desde cero usando tu lenguaje preferido y practicarás desafíos de programación con él.
Certificado al completar
- 14
- 6
- 1
Bootcamp de patrones de estrellas
Pon a prueba tus habilidades de resolución de problemas de programación para aprender a imprimir patrones de estrellas que van desde lo simple hasta lo complejo, involucrando diferentes niveles de bucles anidados, sentencias condicionales y cálculos matemáticos.
- 30
- 28
Por qué aprender PHP con Coddy
- Ejecuta código PHP real en tu navegador. Sin XAMPP, sin Apache, sin servidor local que configurar. Cada lección corre tu PHP del lado del servidor y te muestra el resultado al instante.
- PHP para la web tal como se usa hoy: variables, control de flujo, funciones, arrays, includes, formularios, superglobals, sesiones y patrones básicos de bases de datos. Las bases de PHP que todo desarrollador web necesita.
- Las pistas de IA te ayudan a depurar errores de PHP y desenredar warnings sin darte la respuesta, así problemas comunes como índices indefinidos o errores de comillas se vuelven momentos de aprendizaje en lugar de callejones sin salida.
- Certificado de PHP gratis al terminar el curso. Una prueba creíble para puestos de desarrollo web, WordPress y Laravel, donde PHP sigue siendo un requisito básico.