테스트 사이트 - 개발 중인 베타 버전입니다

PHP8.x 에서 "Warning: Undefined array key ..." 를 만나면

· 3년 전 · 10716 · 17

Warning: Undefined array key "bo_mobile_subject" in .../lib/new_latest.lib.php on line 139

 

139: $list[$i]['bo_subject'] = ((G5_IS_MOBILE && $row['bo_mobile_subject']) ? $row['bo_mobile_subject'] : $row['bo_subject']);


=>  정의되지 않은 array key 변수 앞에 @ 를 붙이면 Warning 을 막을 수 있습니다.

$list[$i]['bo_subject'] = ((G5_IS_MOBILE && @$row['bo_mobile_subject']) ? @$row['bo_mobile_subject'] : @$row['bo_subject']);

 

참고 : https://www.php.net/manual/en/language.operators.errorcontrol.php

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 17개

유익한 정보입니다. 감사합니다.
@arari 감사합니다 ^^
@를 붙여서 에러를 건너띄는건 올바른 방법이 아닙니다.
더군다나 8.0부터는 해당기능이 Deprecate 상태이기때문에 나중버전에서는 삭제될수도 있습니다.
Warning

Prior to PHP 8.0.0, the value of the severity passed to the custom error handler was always 0 if the diagnostic was suppressed. This is no longer the case as of PHP 8.0.0.
@나리스 감사합니다 ^^
순정 G5 에서 없던 Warning 이 갑자기 생겨서 해결책으로 찾은건데 다른 좋은 방법이 있으면 알려주세요~
@욱이요 감사합니다 ^^
$list[$i]['bo_subject'] = (G5_IS_MOBILE && !empty($row['bo_mobile_subject'])) ? $row['bo_mobile_subject'] : $row['bo_subject'];
@라콩이 감사합니다 ^^
isset($row['bo_mobile_subject']) && $row['bo_mobile_subject']
@뻘미 감사합니다 ^^
제대로 코드 달아줬더니 누가 신고 먹이고 어이상실 ㅋㅋ
@mkmm 감사합니다 ^^
코드가 보이지 않는데 다시 올려주시면 다른분께 도움이 될듯합니다
null coalescing operator 를 사용하면 됩니다.
코드뒤에 ??'' 를 붙히면 됩니다.
$comp_uids = explode(',', $result['comp_uids'] ?? '');
감사합니다 덕분에 오류 해결했습니다
감사합니다 :)

하.. 이것 때문에 삽질하고 있었는데 감사합니다..

게시글 목록

번호 제목
22569
22566
22565
22559
22530
22527
22525
22521
22518
22506
22500
22490
22487
22481
22480
22473
22471
22468
22453
22449
22440
22436
22435
22415
22407
22404
22376
22364
22362
22353