Closures are created with the function keyword and can capture outer variables explicitly via the `use` clause, by value or by reference (`use (&$var)`). Arrow functions (`fn($x) => $x * 2`) automatically capture outer variables by value.
Closures implement the Closure class and can be bound to a different object/scope using bindTo() or Closure::bind().