Home » PHP -8. 클래스와 객체

PHP -8. 클래스와 객체

  • PHP는 클래스를 사용할 수 있다.
  • PHP에서 클래스 객체 생성 후 객체의 속성에 접근하는 방법은 -> 를 사용한다.
    [php]
    <?php
    class test {
    var $a; // 멤버변수 (클래스 안에서 변수를 정의 할때는 var를 반드시 적어 주어야 한다.)
    var $b;

    function aaa() { // 메쏘드 (클래스안의 함수를 메쏘드 라고 한다.)
    $this->abcd = " 알파벳"; // 메쏘드안에서 변수 정의할 때는 $this를 붙혀 준다.
    }
    }

    $obj = new test;
    echo $obj->a; // 멤버변수 $a 값을 출력
    $tmp = $obj->aaa(); // 메쏘드 aaa() 를 실행시키고 그 값을 $tmp 에 저장
    ?>
    [/php]

  • 클래스에서는 생성자와 소멸자를 사용 할 수 있다.
    [php]
    <?php
    $object = new User(); // User 객체 생성
    echo $object->name; // Hyun 출력

    class User{ // User 클래스 선언
    public $id, $email, $name, $birthday; //public으로 변수 선언

    function __construct(){ // 생성자 선언
    $this->name = "Hyun"; // 객체가 생성되면서 name 속성에 Hyun 대입
    }

    function __destruct(){
    echo "User 객체 소멸";
    }

    function printUser(){ // User 클래스에 printUser 메소드 선언
    print_r($this); // User 클래스 Print
    }
    }
    ?>
    [/php]

  • PHP5부터는 객체로부터가 아닌 클래스로부터 호출되는 정적(static) 메소드를 정의할 수 있다.

  • 정적 메소드는 어떤 객체 속성에도 접근성을 갖지 않는다.
  • 정적 메소드의 호출은 ->가 아닌 :: 로 호출 된다.
    [php]
    <?php
    User::name_string(); // Your name is Hyun 출력
    //User 클래스의 static형 name_string() 출력
    class User{
    static function name_string(){ // static 형 name_string 메소드 선언
    echo "Your name is Hyun"; // "Your name is Hyun 출력
    }
    }
    ?>
    [/php]

  • 이 외에도 다양한 클래스 형태가 있지만 생략하고 가장 기본적으로 사용할 수 있는 형태만
    설명했다. 좀 더 알고 싶다면 스스로 찾아보기 바란다.