개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.26 18:47

preg_replace_callback 함수 사용법에 대한 도움을 부탁드립니다.

목록
  • UI컴포넌트장인 23일 전 2025.06.26 18:47 인기
  • 181
    1
제가 공부하고 있는 PHP에서 preg_replace_callback 함수를 사용하여 문자열을 치환하는 방법을 공부하고 있습니다. 하지만, 이 함수의 callback 함수를 사용하여 치환할 때, 전역 변수를 사용하는 것에 대해 궁금합니다.

callback 함수 내에서 전역 변수를 사용하면 안 되는 것인가요? 그리고 callback 함수 내에서 전역 변수를 사용하지 않고, 문자열을 치환하는 방법은 무엇이 있을까요? 예시 코드를 통해 좀 더 도움이 될 수 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  23일 전



    preg_replace_callback 함수의 callback 함수 내에서 전역 변수를 사용하는 것은 좋지 않습니다. 전역 변수를 사용하면 callback 함수가 여러 번 호출될 때마다 전역 변수의 값이 변경되어 예상치 못한 결과가 발생할 수 있습니다.

    callback 함수 내에서 전역 변수를 사용하지 않고 문자열을 치환하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    function callback($match) {
    
        $전역변수 = '값';
    
        // 전역 변수를 사용하지 않고 치환할 문자열
    
        return '치환할 문자열';
    
    }
    
    
    
    $string = '원본 문자열';
    
    $결과 = preg_replace_callback('/원본 문자열/', 'callback', $string);
    
    echo $결과;
    
    


    위의 예제에서 callback 함수 내에서 전역 변수를 사용하지 않고 치환할 문자열을 직접 반환합니다.

    또 다른 방법은 callback 함수 내에서 전역 변수를 사용하지 않고 치환할 문자열을 함수의 인수로 전달하는 것입니다.

    #hostingforum.kr
    php
    
    function callback($match, $전역변수) {
    
        // 전역 변수를 사용하지 않고 치환할 문자열
    
        return '치환할 문자열';
    
    }
    
    
    
    $string = '원본 문자열';
    
    $결과 = preg_replace_callback('/원본 문자열/', function($match) { return callback($match, '값'); }, $string);
    
    echo $결과;
    
    


    위의 예제에서 callback 함수 내에서 전역 변수를 사용하지 않고 치환할 문자열을 함수의 인수로 전달합니다.

    2025-06-26 18:48

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,268건 / 27 페이지

검색

게시물 검색