<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복사편집function procChangeuserSwitch($arg1, $key1 = 'default', $key2 = 'default') { ... }
이런 함수에 대해:
php복사편집procChangeuserSwitch('value1', key1: 'value2', key2: 'value3');
이렇게 호출하면 PHP 8 이상에서 오류가 발생합니다.
만약 changeuser.procChangeuserSwitch
함수가 내부적으로 위치 인수와 명명된 인수를 혼합하여 사용하고 있다면, 위치 인수만 사용하도록 수정하세요.
php복사편집procChangeuserSwitch('value1', 'value2', 'value3');
모든 인수를 명명된 인수로 사용하면 문제를 해결할 수도 있습니다.
php복사편집procChangeuserSwitch(arg1: 'value1', key1: 'value2', key2: 'value3');
현재 $.exec_json
호출 부분이 다음과 같습니다.
js복사편집$.exec_json('changeuser.procChangeuserSwitch', {member_srl: member_srl}, function(data) {
location.reload();
});
서버에서 procChangeuserSwitch
함수가 이 데이터를 처리할 때, 인수를 어떻게 받는지 확인해야 합니다.member_srl
이 PHP 함수에서 어떻게 처리되는지 확인하고, 호출 방식을 위 방식 중 하나로 변경하세요.
만약 PHP 코드 일부를 보여줄 수 있다면, 보다 정확한 해결 방법을 안내해 줄 수 있습니다! 🚀