php 디스트럭터
컨텐츠 정보
- 16,964 조회
- 5 추천
- 목록
본문
http://mse96.com/destructortest.php
http://mse96.com/function_list.php
전에 한번 디스트럭터를 만들어 보겠다고 글을 올렸다가,
멤버 변수를 쓸 수 없는 이상한 상황이 발생해서 다시 머리 굴려서 만들어 냈습니다.
사용법은 컨스트럭터에서 register_destructor 를 호출하면 됩니다.(8번째줄)
(register_destructor의 소스는 두번 째 링크에서 찾아보세요.)
디스트럭터는 페이지가 끝날 때 자동으로 호출 됩니다. (PEAR를 이용하면, 더 간단하긴 합니다만, PEAR를 못쓰는 상황에서 쓸려고 만들었습니다.)
register_destructor( 디스트럭터 등록할 클래스[ , 메쏘드 이름]) 으로 등록하면 됩니다.
메쏘드 이름을 넣지 않을 경우 __클래스 이름이 디스트럭터 메쏘드로 인식됩니다.
저는 디스트럭터를 이용해서 세마포어 클래스를 만들어 봤습니다. 동시 접근을 제한하는 방법인데요. java를 해보신 분이라면, syncronized 정도로 생각하시면 될 것 같습니다.
베짱이 참.. 4.10 이상에서만 작동합니다. 02/17 10:33:28
시엔 PHP5에서는 클래스에 __destruct() 메소드를 선언하면 됩니다. 02/17 12:07:21
Venzark 콘스터럭터에서 register_shutdown_function(array($this, 'destructor()')); 해주면 디스트럭터 됩니다.
같은 지는 소스를 못봐서 ^^ 02/17 14:13:13
베짱이 헉 놀랍네요. register_shutdown_function 에 함수 이름을 저런 식으로 등록할 수도 있군요.--; 뻘찟했다.ㅜㅜ 02/17 16:00:23
행복한고니 베짱이// "거친마루" 님 이름으로 검색해보세요. ^^ 02/17 16:55:34
머니 초보인디요
디스트럭터 가 머하는 건지.. 첨 듣네용.. 간단히 설명좀
부탁드립니다. 02/17 18:08:09
엽우 머니 // 디스트럭터, 파괴자는 어떤 객체의 인스턴스가 사라질 때,
(스크립트가 끝나거나 함수가 끝날 때 등)
자동으로 호출되는 함수입니다.
예를 들어 데이터베이스 객체를 만든 다음,
연결을 끊는 함수를 디스트럭터로 등록하면 좋겠지요. 02/18 0:26:59
Venzark 거친마루님은 CREATE_FUNCTION을 이용합니다.
<?
class foo {
function foo() {
register_shutdown_function(array($this, '_foo'));
}
function _foo () {
echo 'this destructor';
}
}
$foo = new foo();
print "일반 출력<br>";
?>
간단한 메세지 출력이나 연산은 거친마루님의 방법이 더 효율적일 수 있습니다. 허나 여러줄의 코드에서는 위의 코드가 효율적이라고 생각합니다.
http://mse96.com/function_list.php
전에 한번 디스트럭터를 만들어 보겠다고 글을 올렸다가,
멤버 변수를 쓸 수 없는 이상한 상황이 발생해서 다시 머리 굴려서 만들어 냈습니다.
사용법은 컨스트럭터에서 register_destructor 를 호출하면 됩니다.(8번째줄)
(register_destructor의 소스는 두번 째 링크에서 찾아보세요.)
디스트럭터는 페이지가 끝날 때 자동으로 호출 됩니다. (PEAR를 이용하면, 더 간단하긴 합니다만, PEAR를 못쓰는 상황에서 쓸려고 만들었습니다.)
register_destructor( 디스트럭터 등록할 클래스[ , 메쏘드 이름]) 으로 등록하면 됩니다.
메쏘드 이름을 넣지 않을 경우 __클래스 이름이 디스트럭터 메쏘드로 인식됩니다.
저는 디스트럭터를 이용해서 세마포어 클래스를 만들어 봤습니다. 동시 접근을 제한하는 방법인데요. java를 해보신 분이라면, syncronized 정도로 생각하시면 될 것 같습니다.
베짱이 참.. 4.10 이상에서만 작동합니다. 02/17 10:33:28
시엔 PHP5에서는 클래스에 __destruct() 메소드를 선언하면 됩니다. 02/17 12:07:21
Venzark 콘스터럭터에서 register_shutdown_function(array($this, 'destructor()')); 해주면 디스트럭터 됩니다.
같은 지는 소스를 못봐서 ^^ 02/17 14:13:13
베짱이 헉 놀랍네요. register_shutdown_function 에 함수 이름을 저런 식으로 등록할 수도 있군요.--; 뻘찟했다.ㅜㅜ 02/17 16:00:23
행복한고니 베짱이// "거친마루" 님 이름으로 검색해보세요. ^^ 02/17 16:55:34
머니 초보인디요
디스트럭터 가 머하는 건지.. 첨 듣네용.. 간단히 설명좀
부탁드립니다. 02/17 18:08:09
엽우 머니 // 디스트럭터, 파괴자는 어떤 객체의 인스턴스가 사라질 때,
(스크립트가 끝나거나 함수가 끝날 때 등)
자동으로 호출되는 함수입니다.
예를 들어 데이터베이스 객체를 만든 다음,
연결을 끊는 함수를 디스트럭터로 등록하면 좋겠지요. 02/18 0:26:59
Venzark 거친마루님은 CREATE_FUNCTION을 이용합니다.
<?
class foo {
function foo() {
register_shutdown_function(array($this, '_foo'));
}
function _foo () {
echo 'this destructor';
}
}
$foo = new foo();
print "일반 출력<br>";
?>
간단한 메세지 출력이나 연산은 거친마루님의 방법이 더 효율적일 수 있습니다. 허나 여러줄의 코드에서는 위의 코드가 효율적이라고 생각합니다.
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.