No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Adquiere por un año todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

1D
11H
46M
1S

Parámetros por referencia

18/25
Recursos

Aportes 9

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

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

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

<h5>Paso de parametros por referencia</h5>

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";

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

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!'

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

El equivalente a trabajar con apuntadores

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.

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

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";


?>