fork download
  1. <?php
  2.  
  3.  
  4. $a = 1;
  5. $b = 2;
  6.  
  7. // создаем замыкание и в этот момент внешние переменные привязываются к функции
  8. // $a передаем по значению $b по ссылке
  9. $closure = function () use ($a, &$b) {
  10. echo "Внутри функции a = $a, b = $b\n";
  11. };
  12.  
  13. // Проверим что видит функция
  14. $closure();
  15.  
  16. // а что еcли поменять переменные?
  17. $a = 100;
  18. $b = 200;
  19.  
  20. $closure();
  21.  
  22. // А что если уничтожить их?
  23. unset($a);
  24. unset($b); // Эта команда уничтожает переменную $b, но поскольку в замыкании сохранена
  25. // ссылка на нее, полностью она пока не уничтожена
  26.  
  27. $closure();
  28.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Внутри функции a = 1, b = 2
Внутри функции a = 1, b = 200
Внутри функции a = 1, b = 200