채택완료

$fields 변수에 관하여

2018-09-04 (화) 20:41:29 6,557

안녕하세요,

그누보드 common.lib.php에서

function get_member($mb_id, $fields='*')
{
    global $g5;

    return sql_fetch(" select $fields from {$g5['member_table']} where mb_id = TRIM('$mb_id') ");

이렇게 자주 등장하는 $fields 변수가 어디에서 정의되었는지 아예 정보가 없네요

대략 $fields=mysqli_num_fields( );

일것으로 추정되는데, 혹시 어느 파일에 정의되었는지 아니면 등장하는지

알려주실수 있을까요?

감사합니다. 

답변 3개 / 댓글 3개

채택된 답변
+20 포인트

function get_member($mb_id, $fields='*')

해당 $fields 변수는 해당함수 호출시 해당부분에 변수가 없을 경우 * 를 리턴하게 합니다.

때문에  get_member('해당아이디') 일경우 

select * from {$g5['member_table']} where mb_id = '아이디'

get_member('해당아이디','mb_name') 일경우 

select mb_name from {$g5['member_table']} where mb_id = '아이디'

답변에 대한 댓글 1개

답변 감사합니다.

아, 그럼 이것이 여러 매개변수가 있는 함수의 방정식? 인가보군요.
이런 $fields='*' 방정식을 뭐라 부르나요?

그럼 get_member 함수를 호출할때마다, $mb_id와 $fields값은 매개변수라 할때 $fields가 비어있을때 (예. get_member('admin') ) sql에서는 select * 쿼리를 넣어, 그 테이블의 모든 리코드를 선택하는다는 뜻인가요?

$fields 변수가 어디에서 정의되었는지 <--- 어디에 정의 해둔 것이 아니라

추출하고 싶은 필드를 get_member()함수를 호출할때 넘겨주면

get_member()함수에서 받는 변수가 $fields인 것이죠

1. $mb = get_member('admin') --> 필드 지정이 없으므로 전체 필드를 추출하여 $mb[mb_id] , $mb[mb_name] , $mb[mb_1] 등으로 사용할 수 있음 (이때 $fields ='*'가 됨)

2. $mb = get_member('admin', 'mb_name') --> mb_name 필드만 지정하여 추출 $mb[mb_id]는 값이 없음 (이때 $fields ='mb_name'이 됨)

답변에 대한 댓글 1개

답변 감사합니다.

아, 그럼 이것이 여러 매개변수가 있는 함수의 방정식? 인가보군요.
이런 $fields='*' 방정식을 뭐라 부르나요?

그럼 get_member 함수를 호출할때마다, $mb_id와 $fields값은 매개변수라 할때 $fields가 비어있을때 (예. get_member('admin') ) sql에서는 select * 쿼리를 넣어, 그 테이블의 모든 리코드를 선택하는다는 뜻인가요?

common.lib.php 파일 1104라인에서 호출하고 있네요.

get_point_sum($mb_id) 함수 내에서 호출하고 있습니다.

얻고자 하는 필드를 명시하고 있는 것으로 보입니다.

답변에 대한 댓글 1개

댓글 감사합니다.
밑에 분이 설명을 잘 해주셨네요

답변을 작성하려면 로그인이 필요합니다.