http://p0t.jp/mt/archives/2007/04/php_22.html より。 リンク先のコメントで id:bobchin さんが書かれている方法とはまた別のやつを考えてみました。 <?php $GLOBALS['__CLOSURE_VARS'] = array(); function create_closure($args, $code, $vars) { $n = count($GLOBALS['__CLOSURE_VARS']); $GLOBALS['__CLOSURE_VARS'][$n] = $vars; $defs = ''; foreach (array_keys($vars) as $key) { $defs .= sprintf('$%s = &$GLOBALS["__CLOSURE_VARS"][%d]["%s"];', $key, $n, $ke