get_encrypt_string 함수 안에 call_user_func 함수 질문
본문
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 함수가 존재합니다.
도움되었습니다.
답변을 작성하시기 전에 로그인 해주세요.