No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Arrow functions

22/25
Recursos

Aportes 10

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Mediante el paso de par谩metro por referencia a la funci贸n an贸nima, se puede cambiar el valor de la variable $where_am_i, devolviendo 鈥淐olombia鈥 al hacer echo de la misma.

Tengo entendido que en el reto la salida ser谩 Mexico, ya que no es posible modificar una variable desde este tipo de funciones, sin embargo al usar par谩metro por referencia har谩 que sea Colombia. 馃く

<?php
// Lee variables del 谩mbito global
$cajero = 10;
$add_cajero = fn($add) => $cajero + $add;

echo $add_cajero(20) . PHP_EOL;  // 30



// No se puede modificar un variable del 谩mbito global desde una arrow function
$cajero2 = 10;
$add_cajero2 = fn($add) => $cajero += $add; 
$add_cajero2(5);
$add_cajero2(5);
$add_cajero2(6);

echo $cajero2 . PHP_EOL;  // 10 



// Otro ejemplo
$edades = [5, 21, 50, 9 ,18]; 
$mayores_de_edad = array_filter($edades, fn($current) => $current >= 18);

echo implode(" ", $mayores_de_edad) . PHP_EOL;  // 21 50 18



// Yes
$where_am_i = "M茅xico";
$change_where_am_i = fn(&$where_am_i) => $where_am_i = "Colombia";
$change_where_am_i($where_am_i);

echo $where_am_i . PHP_EOL;   // Colombia

Las arow functions no funcionan para escribir variables del ambito global, es decir solo las leen por lo que tu no puedes hacer :

$cajero = 10;
$add_cajero = fn($add) => $cajero += $add; //no escribe las variables globales
$add_cajero(5);
$add_cajero(5);
$add_cajero(6);
echo $cajero  //seguira siendo 10 en lugar de 26

soy de Colombia :'v

Colombia

Si pienso que es Colombia

Colombia

Colombia

El resultado es Colombia