제목 | 새로운 객체 생성은 어떻게 하나요? | ||
---|---|---|---|
글쓴이 | 재빠른설계자 | 작성시각 | 2016/02/03 17:56:25 |
|
|||
안녕하세요.
library 에 있는 클래스를
$this -> load -> library('myclass');
이렇게 하면, 라이브러리를 로드 하여
$this -> myclass -> myFunction( );
와 같이 사용할 수 있는데요. 이것은 객체가 한개 밖에 없는 것이라고 생각되어 집니다.
제가 이해한 것이 load -> library : 객체 생성 myclass -> myFunction : 객체 사용
으로 이해했습니다.
그런데, 또다른 객체를 만들려면 어떻게 해야 하나요?
$myClass_1 = new myclass( ); $myClass_2 = new myclass( ); $myClass_1 -> myFunction( ); $myClass_2 -> myFunction( );
와 같이 여러 객체를 만들려면 codeigniter 에서는 어떻게 해야 할까요?
|
|||
다음글 | 페이지네이션 질문이요 (페이징과 글내용을 한 페이지에.... (1) | ||
이전글 | php 5.2 -> 5.3 버전업 하고 memor... (6) | ||
한대승(불의회상)
/
2016/02/03 18:03:57 /
추천
0
|
재빠른설계자
/
2016/02/03 18:12:09 /
추천
0
답변 감사드립니다.
아직 개념이 헷갈려서 다시 여쭤 보는데요, 아래 코드 중에서 4줄과 6줄의 차이는 무엇인가요? $this->load->library('myclass'); $myClass_1 = new myclass( ); $myClass_1 -> myFunction( ); $this -> myclass -> myFunction( );
|
한대승(불의회상)
/
2016/02/04 07:56:00 /
추천
0
4번줄 메소드내에서 선언한 일반변수에 생성된 myclass 객체를 사용한다. 6번줄 Controller 의 멤버변수에 생성된 myclass 객체를 사용한다.
$myClass 를 호출 할 수 있는 범위가 메소드내로 제한 됩니다. 즉 다른 메소드내에서는 사용이 불가능 하죠. $this->myclass 는 호출 할 수 있는 Controller 내의 모든 메소드로 확장 됩니다. |
재빠른설계자
/
2016/02/04 09:30:08 /
추천
0
친절한 답변 감사드립니다!!! |
kaido
/
2016/02/04 10:20:42 /
추천
0
저도 아리송 했었는데, 사이다 같은 답변 감사합니다 ! ㅎㅎ
그래서 인지 $this->load 이 녀석의 특징은 같은 객체를 여러번 호출하면 1개만 생성되어서 관리 되더군요.
|
한대승(불의회상)
/
2016/02/04 12:17:44 /
추천
0
@kaido 싱글톤 이라는 디자인 패턴이 적용되어 있어서 입니다. 같은 라이브러리를 호출 할 때마다 생성한다면 메모리 가용량이 줄어 드니까요. |
올려주신 예문대로 하시면 됩니다.