I am looking at the PHP example of Closures on http://us1.php.net/manual/en/functions.anonymous.php
It provides the example code below and states:
You're misunderstanding the function signature. $quantity and $product are the regular arguments that will be passed into the function when it's called, they indeed do not exist in the parent scope and aren't meant to. use ($tax, &$total) are the closed over variables from the parent scope.
$foo = 'foo'; // closed over variable
// vvvv
$func = function ($bar) use ($foo) {
// ^^^^
// regular function argument
return $foo . $bar;
};
echo $func('baz'); // "foobaz"