PHP Class 소멸자와 생성자 > PHP
PHP

PHP Class 소멸자와 생성자

조회 377회 댓글 0건

객체에 대한 생성자와 소멸자에 대한 것입니다.

생성자는: 인스턴스 생성될때 자동으로 뭔가 실행 시키고 싶을 때 사용

소멸자는: 인스턴스 종료될때 자동으로 뭔가 실행 시키고 싶을 때 사용



  // 생성자, 소멸자 테스트용 클래스
  class A
  {
    private $msg3 = '';

  // 생성자
    public function __construct($msg) {
      $this->msg3   = $msg;
      echo __METHOD__ . " $this->msg3 \n";
    }

    public function test2() {
      echo __METHOD__ . " $this->msg3 " . PHP_EOL;
    }


  // 소멸자

    public function __destruct() {
        echo __METHOD__ . "\n";
    }
  }
  $a = new A( '한글' );
  // unset($a);

  //이렇게 해도 소멸자는 실행이 된다.
  exit;
  $a->test2();
 


74f41311cb42bd2555baee6236e50e01_1674214148_7243.png
 


클래스 자체는 설계도 같은것으로 아무역활도 못합니다.

클래스를 생성하였을때 비로서 뭔가 할 수가 있는데 이때 생성할때와 없어질때 자동으로 실행 되는 뭔가를 하고 싶을 때 사용하는 메소드 입니다.


특이한 점은 프로그램 종료를 뜻하는 exit; 가 있을 경우 바로 그곳에서 프로그램이 종료 되는것이 아니라 객체의 소멸자가 있다면 반드시 소멸자는 실행 된다는 점입니다.



  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 191건 1 페이지
  • profile_image AWS SES API를 활용하면서 PEAR 라이브러리 활용할 필요가 있을 때 사용하면 되지만 일반적으로는 사용할 필요는 없습니다.하지만 필요한 분이 있을 수 있어 예전 소스중에 있어 올립니다. 1) PEAR 설치 사용하는 PHP 버전의 경로를 지정해서 설치 해야 한다. wget https://pear.php.net/go-pear.phar /usr/local/php82/bin/php go-pear.phar /usr/local/php82/bin/p…
  • profile_image AWS에서 메일을 발송하는 방법에는 SMTP 설정을 통한 방법이 있고 다른 하나는 API를 이용한 방법이 있는데여기에선 API를 이용한 방법에 대한 예 입니다.보통 간단하게 조금 보낼때는 관계 없는데 많이 보내게 되면 AWS 비용이 비싸고 반송 메일에 따라 좋지 않으면 패널티도 받기 때문에 AWS 이용은 많이 안하는 편입니다.대량메일 발송서비스만 전문으로 해주는곳을 이용하거나 직접 구축하여 발송을 하게 됩니다.한달 몇 천건 정도면 이것 이용해도…
  • profile_image 간혹 PHP만 설치해서 사용하고 최대한 라이브러리 설치 하지 않게 사용하면서 간단하게 암호화할 필요가 있을 경우 사용 합니다. 가능하면 OpenSSL 라이브러리 사용하는 암호화 방식을 추천 합니다.  그리고 어떤 방식이든 대칭형 암호화에서 키는 가능하면 길게 만들고 여기선 md5 사용 했지만 sha512 같은것 사용하면 더 좋고 시간, 또는 일마다 같은 문자도 암호화 결과가 다르게 만드는것이 좋습니다. 그 부분은 개인의 상황에 맞게 별도의 메소…
  • profile_image 다른 언어에선 셀레리움을 많이 사용하는듯 한데 PHP에서 페이스북에서 만든 웹드라이브를 사용합니다.설치는 어렵지 않으며 여기선 윈도우용 PHP가 이미 설치 되어 있다고 가정하고 웹드라이브 설치 하는것 부터 진행 합니다.▷ 윈도우용 컴포저 다운로드https://getcomposer.org/Composer-Setup.exe▷ 필요한 라이브러리 설치composer require php-webdriver/webdrivercomposer require …
  • profile_image 객체를 생성하는 각 방법은 사용하는 상황과 개발자의 선호도에 따라 다를 수 있는데 생성 하는 방법에는 아래와 같은 것들이 있습니다.  $obj = new stdClass();   // 기본 클래스  $obj = (object) null;    // (object) 변환  $obj = (object)[];       // 빈 배열을 object로 변환  $obj = new class {};     // 익명클래스 - php7 이상 new stdC…
  • profile_image SQL 인젝션 방어를 위해서 sprintf 함수를 많이 사용 하곤 했는데요. 이건 스트링에 그대로 대입을 시켜 주는 방식으로 쿼리문 문자열이 변경되는 방식 입니다.이 방식 말고 mysqli 함수에서 제공하는 기능이 이건 좀 다릅니다.파라미터 값이 문자열로 들어가는 것이 아니라 조건 그대로 들어가도록 되어 있습니다. 그렇기 때문에 OR 1=1 이런것이 먹히질 않습니다.  # CREATE TABLE test.test1 ( hostname char(…
  • profile_image 배열의 키는 날짜로 되어 있습니다.이 날짜키를 기준으로 위쪽, 아래쪽의 데이터를 리턴 받는 것입니다.원리는 기준점을 정하고 그 다음 지정한 갯수 가져오고배열을 역으로 정렬합니다.(기존 날짜순의 역순)그리고 또 동일한 방법으로 지정한 날짜가 나오면 그 다음 5개를 리턴합니다.아래에서는 지정한 날짜는 리턴 대상이 아닙니다.2023-01-02 11:11:012023-01-02 11:11:022023-01-02 11:11:03  <-- 지정 날짜…