PHP में फ़ंक्शन्स और क्लासेस का ग्लोबल स्कोप होता है। इसका मतलब है कि उन्हें स्कोप के अंदर परिभाषित करने के बाद भी स्कोप के बाहर से कॉल किया जा सकता है और इसके विपरीत भी।
लेकिन PHP फ़ंक्शन ओवरलोडिंग का समर्थन नहीं करता है, और पहले से घोषित फ़ंक्शन्स को फिर से परिभाषित करना संभव नहीं है।
फ़ंक्शन को अनाम फ़ंक्शन के रूप में परिभाषित किया जा सकता है और इसके रन पूरा होने के बाद इसे अनसेट किया जा सकता है।
नीचे इसके लिए कोड नमूना है:
if (function_exists('get_magic_quotes_gpc') && @get_magic_quotes_gpc())
$my_fn = create_function('&$v, $k', '$v = stripslashes($v);');
array_walk_recursive(array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST), $my_fn);
unset($my_fn);
}
एक अनाम फ़ंक्शन को अपने अंदर कॉल नहीं किया जा सकता। समाधान array_walk_recursive का उपयोग करना है।