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 का उपयोग करना है।