2009-09-15 3 views
1

두 번째 시간 ...PHP4 - "치명적인 오류 : 기능을 재 선언 할 수 없습니다()"이 우연히 한

내가 내부 array_map() 호출에 사용되는 formatStr()라는 도우미 기능이 기능 foo() 있습니다. 스크립트에서 foo() 번을 두 번 이상 호출하면 "치명적인 오류가 발생할 수 있습니다. 다시 설정할 수 없습니다 formatStr()"이 표시됩니다. 어느 날 내가 formatStr()이 전역 적으로 함수에서 선언되지 않았 음을 알게되었습니다. 사실입니까? function_exists()으로이 문제를 해결할 수 있습니까?

감사합니다.

답변

2

foo() 함수 내에 함수가 정의되어 있습니까? 그렇다면 이동하십시오.

그렇지 않으면, 단지 function_exists 내 formatStr()() ... 내가 아는

if (!function_exists('formatStr')) 
{ 
    function formatStr() 
    { 
     // Your function code 
    } 
} 
+0

을 포장하지만 도우미 함수와 전역 이름 공간을 깨끗이하는 잘못된 것 같습니다. 익명의 함수를 사용할 수 있도록 PHP5로 업그레이드 할 때까지 기다려야 할 것 같습니다. 감사. – frio80

관련 문제