CursosEmpresasBlogLiveConfPrecios

Parámetros por referencia

Clase 18 de 25 • Curso de PHP: Entornos Virtuales y Funciones Avanzadas

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    ¿Debería seguir usando versiones antiguas de PHP?

    ¿Debería seguir usando versiones antiguas de PHP?

    08:51 min
  • 2
    Documentación: la biblia de PHP

    Documentación: la biblia de PHP

    11:25 min
  • 3
    ¿Qué es PHP Doc?

    ¿Qué es PHP Doc?

    08:38 min

Entornos virtuales

  • 4
    ¿Para qué sirven los entornos virtuales?

    ¿Para qué sirven los entornos virtuales?

    03:53 min
  • 5
    Creando un entorno virtual con Vagrant

    Creando un entorno virtual con Vagrant

    15:50 min
  • 6
    Creando un entorno virtual con Laragon

    Creando un entorno virtual con Laragon

    10:33 min
  • 7
    ¿Qué son los Virtual Hosts?

    ¿Qué son los Virtual Hosts?

    03:33 min
  • 8
    Configurando Virtual Hosts en Windows

    Configurando Virtual Hosts en Windows

    14:49 min
  • 9
    Configurando Virtual Hosts en Linux

    Configurando Virtual Hosts en Linux

    13:10 min
  • 10
    Configurando Virtual Hosts en macOS

    Configurando Virtual Hosts en macOS

    14:34 min

PHP con esteroides

  • 11
    Constantes en PHP

    Constantes en PHP

    14:01 min
  • 12
    ¿Variables... variables?

    ¿Variables... variables?

    10:29 min
  • 13
    Scope de PHP

    Scope de PHP

    09:38 min
  • 14
    Variables superglobales

    Variables superglobales

    06:43 min
  • 15
    Redirecciones

    Redirecciones

    13:03 min
  • 16
    Match

    Match

    07:49 min

Funciones a profundidad

  • 17
    Funciones variables

    Funciones variables

    05:06 min
  • 18
    Parámetros por referencia

    Parámetros por referencia

    Viendo ahora
  • 19
    Argumentos a profundidad

    Argumentos a profundidad

    11:17 min
  • 20
    Named arguments

    Named arguments

    05:17 min
  • 21
    Funciones anónimas

    Funciones anónimas

    09:44 min
  • 22
    Arrow functions

    Arrow functions

    10:05 min
  • 23
    Declaraciones de tipo escalar

    Declaraciones de tipo escalar

    06:19 min
  • 24
    Declaraciones de tipo devolución

    Declaraciones de tipo devolución

    08:46 min

Cierre

  • 25
    Aprendamos sobre cookies, sesiones y modularización de código

    Aprendamos sobre cookies, sesiones y modularización de código

    03:36 min
Tomar el examen del curso
    Japheth Calzada López

    Japheth Calzada López

    student•
    hace 3 años

    Lo había visto en código pero no conocía la teoría, muchas gracias Carlos

      Juan Pablo Campuzano Monsalve

      Juan Pablo Campuzano Monsalve

      student•
      hace 2 años

      Así estoy yo!

    AXEL MANUEL MOSQUEDA DE LA CRUZ

    AXEL MANUEL MOSQUEDA DE LA CRUZ

    student•
    hace 3 años

    Parametros por referencia

    Cuando declaras una variable, lo que sucede es que se ocupa un lugar en tu memoria para guardar el valor de dicha variable. ¿Y como sabe PHP que lugar de memoria se ocupó? Bueno, PHP lo sabe por que guarda la referencia de ese lugar. Los nombres de lugares de memoria suelen ser coas como 0x123124234

    Paso de parametros por referencia

    Cuando pasamos parametros a una funcion, lo que hacemos es hacer una copia de la variable, es decir, estamos guardando el mismo valor en diferentes espacios

    Hacer un paso por referencia significa que, en lugar de mandar una copia de la variable, estamos mandando la referencia de dicha variable. Es decir, estamos apuntando al mismo espacio en memoria gracias a que tenemos su referencia

    Para acceder a la referncia en memoria usamos & en la variable deseada para acceder a la variable original

    $cat = "Meow!"; function make_a_cat_bark(&$cat_dog) { $cat_dog = "Woof!"; } make_a_cat_bark($cat); echo $cat; echo "\n";
    Eduardo Reyes

    Eduardo Reyes

    student•
    hace 3 años

    🤣 Retax: muchas personas le tienen miedo, buuuu Yo:

    a1d602b3cefe4553db2b4c780c6fefa3.jpg

    ZANONI ALFREDO SALAS TOBÓN

    ZANONI ALFREDO SALAS TOBÓN

    student•
    hace 2 años

    ¿Qué usos se le pueden dar, o cuando es recomendable usarla?

      Vladimir Farrera Vera

      Vladimir Farrera Vera

      student•
      hace 2 años

      ni idea, solo para confundir por que simplemente paso la varible original.

      Sergio Noriega

      Sergio Noriega

      student•
      hace un año

      Pues es algo muy sencillo, en si funciona como los punteros en lenguajes como c y c++, claramente esta muy bueno y claramente les estas pasando la variable original,por que quieres hacer el cambio de la variable original. Tu prueba a colocar un parametro sin "&" y de ahi simplemente le quieres decir que ese parametro sera igual a 2, no te permitira claramente. Con la practica y uso en proyectos se dara uno cuenta en que momentos.function incrementar(&$numero) { $numero++; } $valor = 5; incrementar($valor); echo $valor; // Esto imprimirá 6

      No es complicado de igual forma solo tiene sus casos mira este codigo de chatgpt:

      function incrementar(&$numero) { $numero++; } $valor = 5; incrementar($valor); echo $valor; // Esto imprimirá 6
    Gerardo Ferreyra

    Gerardo Ferreyra

    student•
    hace 3 años

    Cuando declaramos una variable en PHP, lo que sucede es que se ocupa un lugar en la memoria de tú computadora para guardar el valor de dicha variable. ¿Cómo sabe PHP qué lugar en la memoria se ocupó? Bueno, PHP lo sabe porque guarda una referencia a ese lugar. Supongamos que tenemos los siguientes nombres direcciones de memorias.

    • Carlos.

    • Mariana.

    • José.

    • Raúl.

    • Etc..

    Declaramos una variable en PHP.

    $edad = 14;

    La computadora lo guardará de forma aleatoria en algunas de las direcciones antes mencionadas, digamos que lo guarda en Mariana, es decir:

    • Carlos.

    • Mariana.

      • $edad = 14;
    • José.

    • Raúl.

    • Etc..

    Ahora dentro de la dirección llamada Mariana se encuentra almacenada la variable $edad = 14; Mariana es la referencia porque es el nombre que me dice en qué lugar de la memoria se guardó mi variable, es decir, hace referencia hacia el espacio donde está guardado.

    ¿Qué es el paso de parámetros por referencia?

    Cuando pasamos parámetros a una función, lo que hacemos es hacer una copia de la variable, es decir, estamos guardando el mismo valor en diferentes espacios de memoria.

    ¿Qué es el paso de parámetros por referencia?

    Hacer un paso por referencia significa que, en lugar de mandar una copia de la variable, estamos mandando la referencia de dicha variable. Es decir, estamos apuntando al mismo espacio en memoria gracias a que tenemos su referencia.

    <?php // Variable original. $cat = "Meow!"; function make_a_cat_bark(&$cat_dog) { /** * Al recibir una variable por referencia '&$cat_dog', * modifica el valor de la variable original '$cat' */ $cat_dog = "Woof!"; } // Llamamos a la función y enviamos el parámetro. make_a_cat_bark($cat); echo $cat . PHP_EOL; // Imprimirá 'Woof!'
    Luis Alberto Rodríguez Arellano

    Luis Alberto Rodríguez Arellano

    student•
    hace 4 años

    Muy interesante este tema, supongo que esto impacta favorablemente en el rendimiento de la aplicación, pero como podría revisar ese impacto? hay alguna manera?

      Gilberto Mikkail Asuaje Suarez

      Gilberto Mikkail Asuaje Suarez

      student•
      hace 3 años

      en mi caso no conozco una, pero esto hay que usarlo con cuidado, porque estamos mutando una variable en un scope mas alto

    Juan David Rueda Quiroga

    Juan David Rueda Quiroga

    student•
    hace 3 años

    He usado esto, pero nunca lo entendí como hasta hoy :)

    Julio Cardenas

    Julio Cardenas

    student•
    hace 3 meses

    Salida:

    David Alejandro González Barba

    David Alejandro González Barba

    student•
    hace 3 años

    ¿Cuál sería la diferencia entre usar "use" y paso por referencia en una función?

    Juan Pablo Campuzano Monsalve

    Juan Pablo Campuzano Monsalve

    student•
    hace 2 años

    ¿Cuándo nos referimos a memoria, estamos hablando de que estamos utilizando literalmente nuestra memoria Ram? ¿Me equivoco?

    Bryan Castano

    Bryan Castano

    student•
    hace un año

    Esto de Variables pro Refferencia se entiende mejor si antes vienes de C/C++ con un buen backGround en typo de varaibles y pointers* en C .

    Sergio Olivo Orellana

    Sergio Olivo Orellana

    student•
    hace un año

    Entonces loque estamos ahciendo es cambiar el valor de una variable en memoria por referencia. 😳

    rafael malanco velazquez

    rafael malanco velazquez

    student•
    hace un año
    class mandarMail { public function enviar(&$mensaje) { $mensaje = "Mensaje enviado: " . $mensaje; } } $mensaje = "Hola, ¿cómo estás?"; $mandarMail = new mandarMail(); $mandarMail->enviar($mensaje); echo $mensaje; // Imprime "Mensaje enviado: Hola, ¿cómo estás?" ```class mandarMail { &#x20; public function enviar(&$mensaje) { &#x20; $mensaje = "Mensaje enviado: " . $mensaje; &#x20; } } $mensaje = "Hola, ¿cómo estás?"; $mandarMail = new mandarMail(); $mandarMail->enviar($mensaje); echo $mensaje; // Imprime "Mensaje enviado: Hola, ¿cómo estás?"
    Juan Pablo Campuzano Monsalve

    Juan Pablo Campuzano Monsalve

    student•
    hace 2 años

    Me gustó mucho esta clase, entiendo que, cuando pasas parámetros por referencia, estás teniendo la posibilidad que dentro de la función modifiques el valor inicial de la variable. Cuando no lo hacemos, solo estamos pasando el valor de la variable para utilizarla dentro de la función y retornar un valor diferente en un espacio de memoria diferente, o retornar el mismo valor inicial pero, en un espacio de memoria diferente.

    Eduardo Reyes

    Eduardo Reyes

    student•
    hace 2 años

    🐘 En PHP, los argumentos se pasan a las funciones por valor por defecto, lo que significa que se utiliza una copia del valor en la función y la variable que se pasó a la función no puede ser modificada. Sin embargo, si deseas que una función modifique sus argumentos, necesitas pasar los argumentos por referencia.

    Aquí hay una explicación detallada de cómo funcionan los parámetros por referencia en PHP:

    1. Sintaxis: Para pasar un argumento por referencia, debes anteponer el operador & al nombre del parámetro en la definición de la función. Por ejemplo:

      function foo(&$var) { &#x20; $var++; } $a = 5; foo($a); // $a ahora es 6

      En este código, $a es pasado por referencia a la función foo, lo que permite que modifique el valor de $a.

    2. Modificación de Variables: Cuando pasas una variable por referencia, cualquier cambio que la función haga en el argumento se refleja en la variable original que se pasó. Por ejemplo:

      function add\_some\_extra(&$string) { &#x20; $string .= ' and something extra.'; } $str = 'This is a string,'; add\_some\_extra($str); echo $str; // Salida: 'This is a string, and something extra.'

      En este ejemplo, la función add_some_extra modifica la variable $str porque se pasa por referencia a la función.

    3. Ámbito de la Variable: Cuando las variables en PHP se pasan por valor, el ámbito de la variable definida a nivel de función está ligado dentro del ámbito de la función, y cambiar cualquiera de las variables no tiene ningún efecto en ninguna de las variables. Sin embargo, cuando pasas variables por referencia, el ámbito de la variable se extiende fuera de la función, permitiendo que la función modifique la variable original.

    Pasar parámetros por referencia es una característica poderosa en PHP, ya que permite que las funciones tengan una especie de "canal de comunicación" con el ámbito externo, lo que hace posible no solo devolver valores, sino también modificar variables desde el ámbito de llamada. Esto puede ser particularmente útil cuando necesitas modificar múltiples variables o cuando trabajas con estructuras de datos grandes donde pasar por valor (copiar) sería demasiado intensivo en recursos.

    Gilberto Pérez Garrido

    Gilberto Pérez Garrido

    student•
    hace 2 años

    El equivalente a trabajar con apuntadores

    Hallking Quesada Medina

    Hallking Quesada Medina

    student•
    hace 3 años

    no sabia que podia hacer eso.

    muy interesantes &$variables y asume el lugar donde se guardo el valor en memoria, perimiéndome editar una variable de ámbito global sin definirla como global.

    Daniel G. Parrilla

    Daniel G. Parrilla

    student•
    hace 3 años

    Sería equivalente a poner dentro de la función global $cat y no ponerle ningún parámetro a la función

    Jorge Guerrero

    Jorge Guerrero

    student•
    hace 3 años

    Codigo de la clase

    <?php $cat = "meow"; function make_a_cat_bark(&$cat_dog){ $cat_dog = "woof"; } make_a_cat_bark($cat); echo $cat; echo "\n"; ?>

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads