logo

  • 홈으로
  • 로그인
  • 회원가입
  • 화면축소
  • 화면확대
2018년 08월 21일
  • 포토누리
  • 제작의뢰
  • 포트폴리오
잡다한몽상백서 메인배너
로그인
조회 수 47544 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

본 내용은 http://cafe.naver.com/phpcafe.cafe 카페에 제가 질문 올려 놓고 답변 받은 내용을 학습차원에서 올려 놓은 것입니다.

답변주신 지용이님 이곳을 빌어 다시 한번 감솨요..^^

----------------------------------------------------------------------------------------------------------------

 

하늘님은 우선 객체지향이 무엇인지를 공부하셔야 할 것 같습니다.

서점에서 객체지향과 관련된 책을 구입해 보시기 바랍니다.

 

지금 이해를 못 하는 부분이 바로 함수와 객체의 차이입니다.

 

객체는 자신만의 변수와 함수 가질 수 있습니다. 객체에서 변수, 함수는 각각 멤버변수 , 메쏘드 라고 불립니다.

 

class test {

   var $a; // 멤버변수 (클래스 안에서 변수를 정의 할때는 var를 반드시 적어 주어야 한다.)

   var $b;

 

   function aaa() { // 메쏘드 (클래스안의 함수를 메쏘드 라고 한다.)

   $this->abcd = " 알파벳";  // 메쏘드안에서 변수 정의할 때는 $this를 붙혀 준다.

   }

}

위와 같이 test 란 class 가 있고 이 class 를 사용하기 위해선 아래와 같이 객체를 생성합니다.

 

$obj = new test;

 

이제 $obj 에 새로운 객체하나가 생성되었고 이 객체는 $a, $b 라는 멤버변수와 aaa() 라는 메쏘드 하나를 포함하고 있습니다.

 

만약 멤버변수나 메쏘드를 사용하고 싶다면 아래와 같이 하시면 됩니다.

 

echo $obj->a; // 멤버변수 $a 값을 출력

$tmp = $obj->aaa(); // 메쏘드 aaa() 를 실행시키고 그 값을 $tmp 에 저장

 

 

-> 를 글로 해석할 때는 '무엇 안에 있는' 이라고 표현하면 해석이 편하리라 생각됩니다.

즉 $obj 안에 있는 $a 를 출력 , $obj 안에 있는 aaa() 실행

 

자 그럼 '->' 이것이 무엇을 하는 것인지 어느정도 감이 오시리라 생각됩니다.

 

 

이제 아래 예제를 보세요.

 

class test {

   var $a;

   var $b;

 

   function aaa() {

      echo $this->a;

   }

}

 

위와 같이 aaa() 메쏘드에서 자신이 속한 객체의 멤버변수 또는 메쏘드에 접근 또는 실행 시킬때는 this 키워드를 사용하게 됩니다. 이 this 는 단어 그대로 현재 객체를 뜻 하는 것입니다. 즉 외부 다른 객체의 변수, 메쏘드와 자신의 변수,메쏘드를 구분하는 것이라 생각하셔도 되죠...^^

 

 

자 그럼 질문 하신 내용에 있는 구문을 한번 봅시다.

 

$this->cut_str_size = $data->info->cut_str_size;

 

우선 앞에 있는 것 부터 보면...

 

"현재 객체 안에 있는 cut_str_size 멤버변수에" 라고 해석할 수 있겠습니다.

그럼 이 멤버변수에 무엇을 저장하느냐?

 

"$data 객에 안에 있는 info 객체 안에 있는 cut_str_size 멤버변수의 값" 을 저장해라.

 

* 참고로 -> 를 사용하면 그 앞에 있는 것은 무조건 객체가 됩니다.

그리고 info 가 왜 객체 인지는 $data 가 생성되는 부분을 보시면 확인하실 수 있을텐데요.

DB 쿼리 후 fetch() 라는 메쏘드를 이용하고 있습니다. 그런데 이 fetch() 라는 메쏘드에서는

mysql_fetch_object() 이란 php 함수를 사용하고 있습니다. 그리고 이 함수는 리턴값으로 객체를 반환합니다.

 

즉 $tmp = mysql_fetch_object($result); 이렇게 하게되면 $tmp 값에는 객체가 저장이 되고

값을 사용하고 싶다면 $tmp->필드명 식으로 접근 하게됩니다.

 

이제 $data->info->cut_str_size 를 이해하실 수 있을꺼라 생각되네요...^^

 

 

$cond_list = "module_srl = '{$module_srl}'";

 

 

위 라인은 그냥 $cond_list 에 module_srl = '$module_srl변수값' 문자열을 저장하는 것 뿐입니다.

$module_srl 변수값이 test 라면 module_srl = 'test' 이렇게 저장되죠.

 

 

$oDB->select('*','articles',$cond_list,$order,0,$rows);

 

위 라인은 $oDB 객에 안에 있는 select() 이란 메쏘드를 호출하고 있으며 select() 메쏘드가 실행될때 필요로 하는 인자들을 전달 하고 있는 라인입니다. 이 라인의 결과를 예측해 보시려면 select() 메쏘드를 확인해 보세요.

 

 

$tmp->url = zUrl::getViewUrl($tmp->article_srl);

 

마지막 이 라인은 $tmp 객체 안에 있는 url 멤버변수에...

zUrl 객체의 getViewUrl() 메쏘드의 실행 결과를 저장하라는 것입니다.

 

:: 는 new 라는 지시자로 class를 미리 객체화 시켜놓지 않고 사용하는 시점에서 객체가 생성되고 지정된 메쏘드가 실행되도록 하는 접근자 입니다.

 

 

그럼 소스분석에 도움이 되었길 바라며 더 진행하시기 전에 객체지향 프로그램에 대해 먼저 공부해 보시길 권합니다...^^
 
 

  • profile
    똑띠 2008.04.25 00:43
    이 내용은 언제봐도 좋네요.^^ 다시금 공부하고 싶어 읽어 봤는데 답변주신분이 정말 친절하게 잘 가르쳐 주셨네요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
21 do while 문으로 1부터 100까지 합구하기 똑띠 2010.03.04 19395
20 while 문 사용법 똑띠 2010.03.04 13316
19 DB 접근 및 쿼리문(insert,select,update,delete) 3 똑띠 2010.02.17 30967
18 문자변환 (쌍따옴표제거 및 기타)- str_replace 똑띠 2009.11.23 31402
17 :: 는 어떤 경우 사용하나? 똑띠 2009.10.20 12748
16 자바스크립트에서 return의 의미 똑띠 2009.10.20 24117
15 sprint 사용법 안내 똑띠 2009.08.26 15879
14 php 간단 문법 체크 - 글자 자르기 substr() 함수 똑띠 2009.07.06 23550
13 foreach문이 변환 똑띠 2009.05.31 16095
12 파일 등록시 특수문자 걸러서 등록하기 똑띠 2009.01.15 20986
11 숫자를 통화 단위 형태로 보여주기 1 똑띠 2008.12.24 23136
10 explode() - 구분자 기준으로 문자 배열처리 똑띠 2008.10.20 33971
9 Callback 함수란? 똑띠 2008.07.31 34117
8 Type변환 2 똑띠 2008.03.01 34496
7 foreach 예제 똑띠 2007.10.18 37809
» 클래스(class)에서 지시자(->)의 의미 1 똑띠 2007.07.28 47544
5 클래스( Class ) 사용을 위한 기본 지식 2 똑띠 2007.07.17 45792
4 unset(); 에 대해서 알아보장.. 똑띠 2007.07.30 42640
3 foreach문 사용법에 대하여 2 똑띠 2007.07.30 62148
2 php에서 상수 정의 define(); 똑띠 2007.07.30 41323
목록
Board Pagination ‹ Prev 1 2 3 4 Next ›
/ 4

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

  • Designed by jobdahan.net