看看下面的插图:
// 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
现在将被全局声明,即使在函数内部声明也是如此。有没有办法遵循这个原则,在另一个函数中创建一个小函数/宏,以免乱扔全局范围?另一种方法是创建一个具有私有函数的类,这对我来说似乎有点过分了。
任何帮助表示赞赏