여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - 기초 - 클래스 & 객체
PHP – 기초 – 클래스 & 객체
2년전 작성
8개월전 수정

클래스 & 객체

클래스와 객체의 차이

첫번째 예시로 클래스와 객체의 차이를 알아보자.

  • 클래스
    • 과일
  • 객체
    • 사과
    • 포도
    • 오렌지

두번째 예시는 어떨까 확인해보자.

  • 클래스
    • 자동차
  • 객체
    • 볼보
    • 아우디
    • 포드

이런식으로 클래스는 객체의 템플릿이고 객체는 클래스의 인스턴스다.

개별 객체가 작성되면 클래스의 모든 속성과 동작을 상속하지만 각 객체는 속성에 대해 서로 다른 값을 갖는다.

클래스 정의

클래스는 class 키워드 뒤에 클래스 이름과 한 쌍의 중괄호({})를 사용하여 정의된다.
모든 속성과 메서드는 중괄호 안에 들어간다.

클래스에서 변수는 속성이라고 하고 함수는 메서드라고 한다.

class Fruit {
// 코드 입력
}

이런식으로 입력한다.

클래스 선언 예시

두 개의 메서드로 구성된 클래스를 선언해보자.

PHP
<?php
class Fruit {
public $name;
public $color;

function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
?>

객체 정의

클래스는 객체 없이는 아무것도 아니다.
클래스에서 여러 개체를 만들 수 있다.
각 개체에는 클래스에 정의된 모든 속성과 메서드가 있지만 속성 값은 서로 다르다.

클래스의 객체는 new키워드를 사용하여 생성된다.

객체 선언 예시
PHP
<?php
class Fruit {
public $name;
public $color;

function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}

$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "
"; echo "Color: " . $apple->get_color(); ?>
기본 예시
Name: Apple
Color: Red

$this 키워드

$this 키워드는 현재 개체를 참조하며 메서드 내에서만 사용할 수 있다.

클래스 내부

set_name() 메서드를 추가하고 $this를 사용한다.

PHP
<?php
class Fruit {
public $name;
function set_name($name) {
$this->name = $name;
}
}
$apple = new Fruit();
$apple->set_name("Apple");

echo $apple->name;
?>
기본 예시
Apple
클래스 외부

속성 값을 직접 변경한다.

PHP
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
$apple->name = "Apple";

echo $apple->name;
?>
?>
기본 예시
Apple

instanceof

키워드를 사용하여 instanceof객체가 특정 클래스에 속하는지 확인할 수 있다.

PHP
<?php
class Fruit {
public $name;
public $color;

function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}

$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>
기본 예시
bool(true)
참고

Mingg`s Diary
밍구
공부 목적 블로그