看看如下圖所示:可以在PHP中創建臨時函數/宏嗎?
// 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
現在將全局聲明,即使在函數內部聲明。有沒有辦法遵循這個原則,在另一個函數內部創建一個小函數/宏,以免亂丟全局範圍?另一種方法是用私有函數創建一個類,這對於我的使用來說似乎過分了。
任何幫助表示讚賞
迂腐注:閉包是在閉包匿名函數不同的包括範圍。在PHP中,所有閉包都是匿名函數,但並非所有匿名函數都是閉包。如果包含`use($ var)`聲明(但PHP的文檔和內部表示將它們視爲相同),它只是一個真正的閉包... – ircmaxell 2011-02-16 19:09:01