Extra Form
PHP PHP 7.2
CMS Rhymix

Warning: Creating default object from empty value

 

에러가 굉장히 많은 다수의 자료에서 발생하고 있습니다. 저 에러가 발생하는 경우 php8 에서 모두 실제 동작에 에러를 일으키는(자료를 더 이상 사용할 수 없는) 경우가 되는지 궁금합니다.

 

지금 디버그모드 켜서 확인하다보니 엄청 많은 자료에서 저 원인을 찾아 다 수정한다는게 여간 쉽지 않을 것 같습니다.(개발자가 아닌 운영자라는 가정)

 

php8의 사용 자체가 안되는 에러인가요?

 

 

 

아니면 this will throw an Error in a future version of PHP 이와 같은 주석이 함께 있는 에러들만 다음 버전에서 심각한 문제가 발생하는 건가요???

  • profile
    네 기존 7.4 이하에서 발생되는 워닝에러 대부분 8.0이상부터는 fatal급 에러로 지정됩니다.

    $args = new stdClass();
    $args->member_srl = '~~'

    이렇게 사용하는 코드에서 new stdClass() 가 선언되지 않은 모든 코드들은 상위버전에서 무조건 백지 또는 500에러를 내뱉도록 됩니다.
  • profile profile
    this will throw an Error in a future version of PHP 이런 주석이 달리지 않았는데도 말이죠?

    먼저 질문한 에러는 this will throw an Error in a future version of PHP 주석이 함께 달려 있더라구요.
  • profile profile
    this will throw an Error in a future version of PHP 이 말은 과거에는 묵인한 에러이지만 새로운 PHP에서는 500에러를 뿜고 멈출것이다 라는 일종의 경고문입니다.
  • profile profile
    네. 그 주석이 안달린 지금 제가 질문한 워닝에러의 경우 새로운 php에서 500에러를 뿜지 않을 수 있냐는 질문입니다. 그 경고까지 있는 에러는 아래에 먼저 올린 에러이고 지금 올린 에러는 해당 경고까지는 없어서 구분이 되는건지 질문 드린겁니다.
  • profile profile

    https://3v4l.org/rc9un

    네. 오류납니다.(8.0.0rc2 기준)
    해당 문구는 php 개발자가 편의를 위해 넣은 것일뿐 반드시 해당 문구가 있어야 다음 버전에서 오류로 처리되는것은 아닙니다. 아마 php 8부터는 대다수 경고가 오류로 전환되니만큼 굳이 개별 오류에 메세지를 넣을 필요 없다 판단한것 같습니다.

     

    비슷한 예로 static으로 선언되지 않은 클래스 함수를 static 방식으로 호출하는것 역시 경고메세지에 별 말 없지만 php8부터 오류로 처리됩니다.(https://3v4l.org/bonS8)

  • profile profile
    네. 감사합니다. 굉장히 많은 자료 광범위하게 누락된 코드로 문제가 많은데 php8 로 넘어가는데 큰 장벽이 될 것 같습니다.