get_encrypt_string 함수 안에 call_user_func 함수 질문

get_encrypt_string 함수 안에 call_user_func 함수 질문

QA

get_encrypt_string 함수 안에 call_user_func 함수 질문

답변 2

본문


function get_encrypt_string($str)
{
    if(defined('G5_STRING_ENCRYPT_FUNCTION') && G5_STRING_ENCRYPT_FUNCTION) {
        $encrypt = call_user_func(G5_STRING_ENCRYPT_FUNCTION, $str);
    } else {
        $encrypt = sql_password($str);
    }
 
    return $encrypt;
}

이 코드에서 call_user_func 함수 부분이 이해가 안갑니다.

call_user_func 함수는

첫번 째 매개변수로 지정된 것을 호출하고 (사용자 정의 함수)

두번 째 매개변수는 인자로 지정하는데

 

코드에서 call_user_func 함수 첫번 째 매개변수는 'G5_STRING_ENCRYPT_FUNCTION' 입니다.

G5_STRING_ENCRYPT_FUNCTION 는 상수는 지정이 되어있어도 함수는 지정되어있지 않습니다..

혹시 상수도 변경하는건가 싶어서 테스트 해봤는데 값이 안바뀌는거 같습니다.

call_user_func 함수 부분은 무엇을 의미하는건가요?

이 질문에 댓글 쓰기 :

답변 2

https://www.php.net/manual/en/function.call-user-func.php

 

이름 문자열을 통한 함수를 호출하는 내장함수입니다.

 

G5_STRING_ENCRYPT_FUNCTION 값이 create_hash 이므로

 

create_hash 함수를 호출할것입니다.

 

lib/pbkdf2.compat.php

 

=> 해당 화일에 create_hash 함수가 존재합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1
© SIRSOFT
현재 페이지 제일 처음으로