CI 묻고 답하기

제목 CI return $this
글쓴이 학학이 작성시각 2016/07/12 17:05:06
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14008   RSS

CI로 만들어진 사이트 분석중에 REST API 를 구현한 부분 보는 중입니다.

 

	public function http_login($username = '', $password = '', $type = 'any')
	{
		$this->option(CURLOPT_HTTPAUTH, constant('CURLAUTH_' . strtoupper($type)));
		$this->option(CURLOPT_USERPWD, $username . ':' . $password);
		return $this;
	}

 

요기서 http_login이 return $this를 하는데 이걸 호출한 부분은 

 

$this->_ci->curl->http_login($this->http_user, $this->http_pass, $this->http_auth);

이거 입니다.

 

보통 JS는 

var some = http_login();

function http_login(){
  return {
  }
}

이런식으로 return 받은 값을 어떤 변수에 넣는데 php는 그냥 -> 이걸로 계속 함수 호출만 하고 $this 리턴하면 

호출한 부분 클래스에서 어떤식으로 이뤄지는 건가요?

이게 JS 처럼 데이터를 console.log()로 찍어보면서 디버깅하고픈데 모르겠네요..

 다음글 CI 개발중 데이터 확인 (5)
 이전글 View에 데이터를 넘기는데 문제가 있습니다. (3)

댓글

kaido / 2016/07/12 17:56:39 / 추천 0
$http_login = $this->http_login($username = '', $password = '', $type = 'any');

이거요?

 

학학이 / 2016/07/13 08:41:12 / 추천 0

네 보통 그런식으로 쓰지 않나요?

근데 호출만하고 리턴받은 값을 변수에 넣어주지 않네요?

다시 코드도 그냥 $this->....->....-> 이렇게 선언만 하는게 많은데 php가 원래 그런건가요?

한대승(불의회상) / 2016/07/13 08:51:29 / 추천 0

php가 원래 그런건 아니고 oop로 프로그램을 작성하면 비슷하게 되더군요.

형식은 다르지만 java나 기타 다른 언어도 oop로 짜면  모양이 비슷하게 나옵니다.

kaido / 2016/07/13 09:34:47 / 추천 0

@학학이

만들기 나름입니다.

객체를 생성해서 받아가서 쓰고 싶다면 그렇게 만들면 되구요.

CI의 oop 스타일이 약간 유니크한 면이 있어서 그렇지, 기본은 결국 oop 구도입니다.

 

리턴 받아가서 사용하고 싶으면 리턴 받아가면 되고, 아니면 리턴 받지 않아도 됩니다.

어느쪽이든 상관없어요.

[java는 리턴 타입과 리턴 받을지 안받을지 꼭 명시 해야 하지만 php는 자유]

참고로 CI 객체 대부분은 기본적으로 실행에 대한 성공 실패를 리턴을 해주고 있습니다.

값이 있으면 값을 리턴해 주고요.

학학이 / 2016/07/13 10:05:33 / 추천 0

네 감사합니다. ㅎ