라이믹스 changeuser 모듈 레거시 코드
<script>
function switchUser(member_srl)
{
$.exec_json('changeuser.procChangeuserSwitch', {member_srl: member_srl}, function(data) {
location.reload();
});
}
</script>PHP8 이상에서의 오류
Fatal error: Cannot use positional argument after named argument in /Users/eond/PhpstormProjects/eond/files/cache/template/layouts/el_imin/assets/pages/layout.blade.php.compiled.php on line 88
해당 오류 메시지는 **"위치 인수(positional argument) 이후에 명명된 인수(named argument)를 사용할 수 없다"**는 의미입니다.
🔍 원인 분석
$.exec_json 함수가 호출될 때, JavaScript 코드에서 member_srl을 객체 형태로 넘겨주고 있습니다. 하지만 서버 측 PHP 코드에서 changeuser.procChangeuserSwitch 핸들러가 처리할 때, PHP 8 이상에서는 위치 인수 뒤에 명명된 인수를 사용할 수 없다는 제약이 있습니다.
즉, changeuser.procChangeuserSwitch 함수 내부에서 다음과 같은 코드가 있을 가능성이 큽니다.
이런 함수에 대해:
이렇게 호출하면 PHP 8 이상에서 오류가 발생합니다.
🛠 해결 방법
1. 위치 인수(positional arguments)만 사용
만약 changeuser.procChangeuserSwitch 함수가 내부적으로 위치 인수와 명명된 인수를 혼합하여 사용하고 있다면, 위치 인수만 사용하도록 수정하세요.
2. 모든 인수를 명명된(named arguments) 형식으로 변경
모든 인수를 명명된 인수로 사용하면 문제를 해결할 수도 있습니다.
3. JavaScript에서 전송하는 데이터 확인
현재 $.exec_json 호출 부분이 다음과 같습니다.
서버에서 procChangeuserSwitch 함수가 이 데이터를 처리할 때, 인수를 어떻게 받는지 확인해야 합니다.member_srl이 PHP 함수에서 어떻게 처리되는지 확인하고, 호출 방식을 위 방식 중 하나로 변경하세요.
만약 PHP 코드 일부를 보여줄 수 있다면, 보다 정확한 해결 방법을 안내해 줄 수 있습니다! 🚀