2011-08-12 3 views
4

나는 PHP는 다음과 같은 수 있도록 보인다 것으로 나타났습니다 :PHP는 클래스 인스턴스를 할당 해제 했습니까?

<?php 

class StandAlone { 
    public function __construct() { 
     echo "I am constructed!"; 
    } 

    public function __destruct() { 
     echo "I am destructed!"; 
    } 
} 

new StandAlone; 

어떤 소란없이.

이 오류는 PHP 이어야합니까?는 오류를 발생시킬 수 있습니까? 아니면 이것이 허용 가능하고 클래스 인스턴스가 어딘가에 메모리에 존재할 뿐이며 특정 인스턴스에 직접 액세스 할 수 없습니까?

답변

2

클래스 인스턴스에 대해 잘 작동합니다. 예를 들어, 매개 변수로 StandAlone 오브젝트를 허용하는 함수에 매개 변수로 전달할 수 있습니다. 스크립트 실행 중 사용중인 시간 동안 메모리에 존재합니다. 할당되지 않은 경우, 생성되고 파괴되며 해제됩니다.

call_a_function(new StandAlone); 

나는 그러나, 당신이 그것을 할당하거나 조금만 더 클래스 대신에 몇 가지 작업을 수행하는 함수를 정의하여 제공되지 않을 함수에 통과하지 않고 new Object를 호출하는 어떤 실제적인 상황을 생각할 수 없다.

+0

감사합니다. 나는 실제로 그렇게했습니다. 나는 나를 던진 것이 스크립트 자체를 잊어 버리는 인스턴스에 대한 명백한 컨텍스트가 없다고 생각합니다. – Mike