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


?>