$member 변수는 사용시마다 계속 불러오는 건가요?
본문
안녕하세요
안읽은 쪽지 확인하는 스크립트를 보고 있는데
기존에 있는 변수는 값이 안넘어 오더라구요
그래서 $memeber['mb_memo_cnt'] 로 읽지 않은 쪽지 수를 받아오게 변경했는데
$member[]라는게 로그인 시 요청 후 사용자 컴퓨터 내에 변수로 저장된 내용을 불러오는 건가요? 아니면
로그인시에도 요청하고 스크립트를 불러오다가 $member['$mb_scrap_cnt']와 같은 설정된 변수를 요청하면
다시 sql에 요청하고 하는 식으로 매번 사용할때마다 sql에 요청하는 식인가요?
답변 3
$member라는 변수를 common.php 파일에서 로그인시 해당 id로 회원정보의 테이블에서 불러오는 부분입니다.
common.php 파일이 항상 include 되어야 하기때문에 위 부분을 참고하셔서 적용하시면 되는 부분입니다.
$member 변수는 common.php 에서 할당되는 변수로
common.php 를 include 하는 페이지에서는 새로고침등 페이지 이동이 발생하는 경우
로그인 상태에서는 매번 mb_id 당 SQL 요청이 최초 1회 발생합니다.
로그인 안되어 있는 경우 임시 배열 생성
https://github.com/gnuboard/gnuboard5/blob/master/common.php#L137
로그인 되어 있는 경우 SQL 요청 이후 얻어진 값에의한 배열 생성
https://github.com/gnuboard/gnuboard5/blob/master/common.php#L532
이후 bracket 연산자 [${key}] 로 표현되는 부분은
단순히 할당된 배열의 키 ${key} 값을 접근 하는 동작을 수행합니다.
https://www.php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying
'매 사용시마다'는 아닙니다.
'매 페이지 로딩시' 1회 입니다. (common.php)
common.php 에서 로그인 회원 db 정보를 $member 변수에 저장합니다.
그 이후로는 $member 변수를 100번 사용할 수도 있고.. 0번 사용하는 경우도 있습니다.
=> 회원정보 저장을 위한 회원 db 호출은 1회
db 호출을 통한 $member 변수로의 저장은 매 페이지 1회입니다.