[ php ] [ class ] 클래스( class )에서 지시자( -> )의 의미 > php

본문 바로가기
사이트 내 전체검색

php

[ php ] [ class ] 클래스( class )에서 지시자( -> )의 의미

페이지 정보

작성자 웹지기 댓글 0건 조회 19,558회 작성일 18-09-30 05:07

본문

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

 

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() 실행

 

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

 

 

이제 아래 예제를 보세요.

[code] 

class test {

   var $a;

   var $b;

 

   function aaa() {

      echo $this->a;

   }

}

[/code]

위와 같이 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를 미리 객체화 시켜놓지 않고 사용하는 시점에서 객체가 생성되고 지정된 메쏘드가 실행되도록 하는 접근자 입니다.

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 82건 3 페이지
  • 52 [ php ] fopen, fgets, fclose, fseek, ftell
  • 1. fopen, fgets, fcloselog 파일 또는txt나 csv로 된 DB파일을 불러올 때 쓰는 함수다.$file = 'log.txt'; // 불러올 파일명$f =fopen( $file, "r" ); // 파일을 열어 '읽기만' 한다. (포인터는 파일의 맨 처음)$line =fgets( $f, 4096 ); // 한 줄을 읽는다.echo $line; // 한 줄을 출력한다.fclose($f) // 파일을 닫는다.각 함...
  • 웹지기 09-30 5278 0 0 댓글 0
+1
  • 49 [ php ] 모든 언어를 나의 언어로 만들자!!!(베타버젼 입니다.) - 헌이님
  • 구글 번역이 유료화 되면서 마이크로 소프트사의 API 번역기를 이용하여 만들어 봤습니다.연동하기 시작한지는 좀 되었는데, 오늘 마무리를 합니다.유료화 하는 스킨인데요 ....... .오늘은 특별히 이런 저런 일이 많았습니다. 특히나군포돼지님과 좋은친분으로 갖기로한 나만의(?) 기념으로 올립니다.TEST http://linkma.kr/bbs/write.php?bo_table=Community유료자료실 http://linkma.kr/bbs/board.php?bo_table=SIR_SKIN2초보자를 위...
  • 웹지기 09-30 3352 0 0 댓글 0
  • 48 [ php ] [ class ] 클래스( Class ) 사용을 위한 기본 지식
  • 1. Class 란?클래스는 변수와 변수에 관계되는 함수로 이루어진 하나의 변수형이다.함수저장소 또는 비슷한 함수모음 이라고 이해하면 되겠다.2. Class의 기본 형태<?phpclass Plan{ function testPlan() { echo(" Call to testPlan function!"); }}$skyplan =newPlan; // 객체변수를 생성하기 위해 new를 사용함$skyplan->testPlan(); // testPlan...
  • 웹지기 09-30 3322 0 0 댓글 0
  • 열람중 [ php ] [ class ] 클래스( class )에서 지시자( -> )의 의미
  • 객체는 자신만의 변수와 함수 가질 수 있습니다. 객체에서 변수, 함수는 각각 멤버변수 , 메쏘드 라고 불립니다.class test { var $a;// 멤버변수 (클래스 안에서 변수를 정의 할때는 var를 반드시 적어 주어야 한다.) var $b; function aaa() {// 메쏘드 (클래스안의 함수를 메쏘드 라고 한다.) $this->abcd = " 알파벳";// 메쏘드안에서 변수 정의할 때는 $this를 붙혀 준다. }}위와 같이 test 란 class 가...
  • 웹지기 09-30 19559 0 0 댓글 0
  • 45 [ php ] [ class ] Snoopy.class.php 를 이용하여 파일 긁어오기
  • 사이트를 긁어오기를 하다보면 fsockopen(): unable to connect to 라는 에러가 나면서 사이트 긁어오기가 되지 않는 경우가 종종있다.특히 외국 사이트중에 그런 곳이 많다. 사이트를 방문하지 않고 내용만 쏙 빼가는게 탐탁치 않아서 막아 놓은경우도 있고, 국가적인 차원에서 차단을 시킨경우도 있다.예를 들어 , 일본 최대 AV 회사중에 하나인 DMM은 한국에서 들어오는 방문자를 차단시켜놓았다. 실제로 AV를 구매하지도 않으면서 트래픽은 엄청나게 잡아 먹기 때문이다.또 다른예로 , ...
  • 웹지기 09-30 6279 0 0 댓글 0
  • 44 [ php ] Text Files 핸들링
  • 파일명 menu.ini회사소개,인사말씀,조직도,오시는길제품소개,가전제품,주방제품,욕실제품고객센터,A/S안내,불만접수,1:1게시판커뮤니티,공지사항,자유게시판,이용후기예제 1[code]$File = file('./menu.ini');echo $File;결과 : file 함수는 파일을 읽어서 배열로 반환하는 것을 알 수 있다.결과 array[/code]예제 2첫번째 배열을 출력[code]$File = file('./menu.ini');echo $File[0];결과 : 역시 파일의 전체 내용을 배열로 읽...
  • 웹지기 09-30 3019 0 0 댓글 0
  • 43 [ php ] glob 이용 패턴으로 파일 include 하기
  • [code]$library = array_merge( glob('**/*.class.php'));foreach($library as $lib) include_once $lib;[/code]PHP프레임워크를 제작하던 중 쓰던 방법glob 로 패턴으로나온 리스트를 array로 담고 그걸 merge로 합쳐서 include 하는 형태[code]array glob ( string $pattern [, int $flags= 0 ] )[/code]
  • 웹지기 09-28 3808 0 0 댓글 0
  • 42 [ php ] 자료형 비교표 gettype(), empty(), is_null(), isset(), bool…
  • __EXPRESSION__gettype()empty()is_null()isset()boolean:if($x)$x = "";stringTRUEFALSETRUEFALSE$x = null;NULLTRUETRUEFALSEFALSEvar $x;NULLTRUETRUEFALSEFALSE$xis undefinedNULLTRUETRUEFALSEFALSE$x = array();arrayTRUEFALSETRUEFALSE$x = false;booleanTRUEFALSETRUEFALSE$x = true...
  • 웹지기 09-28 4924 0 0 댓글 0
  • 41 [ php ] PHP에서 CSV 로 내보내기
  • csv 아웃풋용 파일을 하나 만들어두시고 링크------------------------------------------------------------------------------------------------ csv_output.php[code]<?include "환경 설정 파일들";// DB를 정의합니다. 여기서는 DB 클래스 파일을 include해서 사용했습니다.$DB = new DB_Mysql($WEB_HOST,$WEB_USER,$WEB_PASS,$W...
  • 웹지기 09-28 10795 0 0 댓글 0
  • 40 [ php ] allow_url_fopen = off 일때 url파일읽기
  • php.ini 파일에 allow_url_fopen=on으로 설정되어 있으면, URL 주소로 파일 읽어올 때 다음과 같이 처리하지만 allow_url_fopen=off로 설정되어 있는 경우, 일단 php.ini 파일을 수정그러나 웹호스팅을 하는 경우 php.ini 파일을 직접 수정할 수 없는 경우가 있다.이런 경우의 해결책을 찾아보니 다음과 같이 socket을 이용해 URL주소를 읽어오는 방법[code]<?php$url = "URL 주소";$info = parse_u...
  • 웹지기 09-28 5721 0 0 댓글 0
+3
  • 39 [ php ] php 에서 xml 사용하기
  • php에서 사용하기SimpleXML SimpleXML 모듈은 사용자가 쉽게 XML문서를 객체화 시켜 사용 가능 요구사항 : PHP5 XML James Clark의 expat를 사용. XML 문서를 처리할 수 있게 하지만, 유효성을 검증하지는 않음 요구사항 : PHP를 아파치 1.3.9 이상의 모듈로 컴파일 expat 설치 => http://www.jclark.com/xml/expat.htmlDOM XML문서를 DOM API 로 제공함 요구사항 : java VM이 설...
  • 웹지기 09-27 4708 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
5,483
어제
6,915
최대
33,828
전체
8,110,177

그누보드5
Copyright © funyphp.com. All rights reserved.