$this 키워드
Coddy PHP 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 91개 중 4번째.
$this 키워드는 클래스의 메서드 내에서 해당 클래스의 현재 인스턴스를 가리킵니다. 이를 통해 현재 객체의 속성에 접근하고 수정할 수 있습니다.
다음은 $this를 사용하는 메서드가 포함된 클래스의 예입니다:
<?php
class Car {
public $color;
public $model;
public function honk() {
echo "Beep beep!\n";
}
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}$this 키워드는 메서드를 호출한 객체를 참조하기 위해 메서드 내부에서 사용됩니다.
자동차 객체를 생성하고 속성을 설정합니다:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";이제 메서드를 호출합니다:
$myCar->honk();
$myCar->describe();출력:
Beep beep!
I am a Red Sedan$myCar->describe()를 호출하면, PHP는 자동으로 $this가 $myCar를 참조하도록 설정합니다. 이것이 메서드가 어떤 객체의 속성에 접근해야 하는지 아는 방법입니다.
만약 또 다른 car 객체가 있다면:
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // 저는 Blue SUV입니다핵심 포인트: $this는 항상 메서드를 호출한 특정 객체를 가리킵니다. 메서드가 실행될 때 각 객체는 자신만의 컨텍스트를 갖습니다.
챌린지
쉬움car.php 파일에 있는 Car 클래스를 완성하세요. $this 키워드를 사용하여 자동차의 연식(year), 제조사(make), 모델(model)을 다음과 같은 형식으로 출력하는 displayInfo 메서드를 추가해야 합니다:
"This car is a [year] [make] [model]"
car.php:displayInfo메서드를 추가할Car클래스 정의가 포함되어 있습니다.driver.php:Car클래스를 가져와서 사용하는 메인 실행 파일입니다 (수정 불가).
치트 시트
$this 키워드는 클래스 메서드 내에서 클래스의 현재 인스턴스를 가리키며, 현재 객체의 속성에 접근하고 수정할 수 있게 해줍니다.
클래스 내에서 $this 사용하기:
<?php
class Car {
public $color;
public $model;
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}객체 생성 및 메서드 호출:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";
$myCar->describe(); // 저는 빨간색 세단입니다$myCar->describe()를 호출하면 PHP는 자동으로 $this가 $myCar를 참조하도록 설정합니다. 메서드가 실행될 때 각 객체는 고유한 컨텍스트를 가지므로, $this는 항상 메서드를 호출한 특정 객체를 가리킵니다.
직접 해보기
<?php
require_once 'car.php';
$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";
$myCar->displayInfo();
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
8매직 메서드
매직 메서드 소개__toString 및 __debugInfo__get, __set, __isset, __unset__call 및 __callStatic__clone 및 객체 복제__serialize 및 __unserialize요약 - 커스텀 컬렉션