Hàm và class trong PHP có phạm vi toàn cục. Nghĩa là có thể gọi bên ngoài hàm ngay cả sau khi định nghĩa bên trong phạm vi và ngược lại.
Nhưng PHP không hỗ trợ nạp chồng hàm, và không thể định nghĩa lại hàm đã khai báo trước.
Hàm có thể định nghĩa là hàm ẩn danh và unset sau khi chạy xong.
Mã mẫu:
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);
}
Hàm ẩn danh không thể gọi đệ quy bên trong chính nó. Giải pháp thay thế dùng array_walk_recursive.