Extra Form
PHP PHP 8.0
CMS Rhymix 2.1

계정을 이전해서 홈페이지를 복구하는 중입니다.

기존 php7.2 에 있던 사이트를 8.0으로 옮기는데 오류 메시지가 떴는데 해결책을 못 찾겠네요...

남들이 잘 안 쓰는 위젯이라 그런지 해결책이 검색되지도 않습니다.

 

고수님들의 조언 부탁합니다.

 

Error #0 "Attempt to assign property "module_srls" on null" in widgets/doorweb_content/doorweb_content.class.php on line 78

이런 오류 메시지가 떴구요

 

78라인의 내용은 다음과 같습니다.

 

$obj->module_srls = $args->module_srls;

 

뭐를 어떻게 바꾸면 될까요

  • profile
    $obj 변수가 초기화되어 있지 않은 상태에서 값을 넣으려고 해서 그런 것 같습니다.

    $obj->module_srls = $args->module_srls; 바로 위에
    $obj = new stdClass(); 넣어보세요.
  • profile ?
    일단 넣으니 다음과 같이 다른 라인에 오류가 나타나네요...ㅜ.ㅜ
    여깁니다.

    $widget_info->slider_name = 'gySliderBot_'.rand(100000,500000).rand(100000,500000);
  • ? profile
    에러가 같은 내용이라면 마찬가지입니다.
    $widget_info = new stdClass(); 추가 해보세요.
  • profile profile
    위젯의 경우에는 상황에 따라 변수가 있기도 하고 없기도 하고, 있는 경우에는 초기화하면 곤란하기 때문에 좀 애매한 부분이 있습니다. $widget_info = $widget_info ?? new stdClass(); 이렇게 조건부로 초기화하면 안전해요.
  • profile profile
    근데 에러로그가 없어서 이렇게 초기화 해도 해결이 안될 수 있을 것 같다는 생각이 드네요. 같은 에러상황이 아니엿더라면 ㅋㅋ...
  • profile
    제경험에 의하면 php8이라서 생긴오류 맞고 생각보다는 처리가 어려웠습니다.
    변수가 초기화야 이래저래 해도 여기저기서 막 문제가 쏟아져나왔어요 ㅠㅠ
  • profile ?
    아 아무래도 그런거 같네요 ㅜ.ㅜ
    php7.4 에다 설치할 걸 그랬나보네요 ㅜ.ㅜ
  • profile
    PHP 5.5.9 -> PHP 7.0 시절에는 일부 regex 함수와 mysql 함수만 손대주면 되었는데,
    PHP 7.x -> PHP 8.x 는 잘못된 문법 사용에 대해서 거의 다 error 로 바뀌었기 때문에, 손이 많이 갈 수 있습니다.
  • ?
    결국 포기하게 되네요... ㅠ,ㅠ
  • ?
    아~ 포기했다가 마지막이라는 심정으로 차근차근 위의 설명대로 해보니 됩니다.
    고맙습니다. ㅜ,ㅜ