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를 사용하는 것입니다.