请看下面的插图:
// Trims input, fixes spaces and encodes bad glyphs. Also works with arrays.
function prepare_param($param)
{
$retval = "";
function prc($param)
{
$r = split(" ", trim($param));
foreach($r as $i => $e)
$r[$i] = urlencode($e);
return join("+", $r);
}
// If input is an array
if(is_array($param))
{
$retval = array();
foreach($param as $e)
$retval[] = prc($e);
}
// If input is a string
else if(is_string($param))
{
return prc($param);
}
else throw new Exception("Invalid input! Expected String or Array.");
}
显然,函数 prc
现在将被全局声明,即使是在函数内部声明。有没有办法遵循这个原则,在另一个函数中创建一个小函数/宏,以免浪费全局范围?另一种方法是创建一个具有私有(private)函数的类,这对我来说似乎有点过分了。
感谢任何帮助
最佳答案
您可能想要closures ,它们是匿名函数。
关于php - PHP 中可以创建临时函数/宏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020650/