>백엔드 개발 >PHP 튜토리얼 >PHP에서 객체 데이터 유형을 사용하는 방법

PHP에서 객체 데이터 유형을 사용하는 방법

王林
王林원래의
2023-07-15 11:30:031478검색

PHP에서 객체 데이터 유형을 사용하는 방법

PHP에서 객체는 실제 엔터티나 추상 개념을 나타내는 데 사용할 수 있는 특수 데이터 유형입니다. 객체는 객체가 갖는 속성과 메서드를 정의하는 클래스를 통해 생성됩니다. 이 기사에서는 PHP에서 객체 데이터 유형을 사용하는 방법을 배우고 코드 예제를 통해 이해를 심화할 것입니다.

클래스 만들기
PHP에서는 class 키워드를 사용하여 클래스를 만들 수 있습니다. 클래스에는 여러 속성과 메서드가 포함될 수 있습니다. 다음은 간단한 예입니다.

class Person {
  public $name;
  public $age;
  
  public function sayHello() {
    echo "Hello, my name is " . $this->name . ".";
    echo " I am " . $this->age . " years old.";
  }
}

이 예에서는 두 개의 공개 속성인 $name과 $age와 공개 메서드인 sayHello가 있는 Person이라는 클래스를 만듭니다. 속성은 객체의 상태를 저장하는 데 사용되고, 메소드는 객체의 동작을 정의하는 데 사용됩니다.

객체 생성
객체를 생성하려면 new 키워드와 클래스 이름을 사용해야 하며 매개변수는 괄호를 사용하여 전달할 수 있습니다. 다음은 Person 객체를 생성하는 예입니다.

$person = new Person();

객체를 생성한 후 화살표 -> 구문을 사용하여 객체의 속성과 메서드에 액세스할 수 있습니다. 예를 들어 $name 및 $age 속성에 값을 할당하고 sayHello 메서드를 호출할 수 있습니다.

$person->name = "John";
$person->age = 30;
$person->sayHello(); // 输出:Hello, my name is John. I am 30 years old.

Inheritance
PHP는 클래스 상속을 지원하므로 기존 클래스의 속성을 상속하는 새 클래스를 만들 수 있습니다. 및 메소드가 있으며 고유한 속성과 메소드를 추가할 수 있습니다. 예를 들어, Person 클래스에서 상속되는 Student 클래스를 만들 수 있습니다.

class Student extends Person {
  public $grade;
  
  public function sayGrade() {
    echo "I am in grade " . $this->grade . ".";
  }
}

이 예에서 Student 클래스는 Person 클래스의 모든 속성과 메서드를 상속하고 새 속성 $grade와 새 메서드 sayGrade를 추가합니다.

Student 개체를 만들고 해당 메서드를 호출합니다.

$student = new Student();
$student->name = "Jane";
$student->age = 18;
$student->grade = 12;

$student->sayHello(); // 输出:Hello, my name is Jane. I am 18 years old.
$student->sayGrade(); // 输出:I am in grade 12.

캡슐화 및 액세스 제어
PHP의 캡슐화는 개체 속성과 메서드를 보호하는 메커니즘으로 액세스 제어 수정자를 사용하여 속성 및 메서드 권한에 대한 액세스를 제한할 수 있습니다. 공개, 보호, 비공개의 세 가지 액세스 제어 수정자를 사용할 수 있습니다.

  • public: 공용 액세스 권한, 속성 및 메서드는 클래스 내부와 외부에서 액세스할 수 있습니다.
  • protected: 보호된 액세스, 속성 및 메서드는 클래스 내부와 하위 클래스에서 액세스할 수 있습니다.
  • private: 비공개 액세스 권한, 속성 및 메서드는 클래스 내에서만 액세스할 수 있습니다.

다음은 액세스 제어를 사용하는 예입니다.

class Car {
  public $brand;
  protected $price;
  private $mileage;
  
  public function __construct($brand, $price, $mileage) {
    $this->brand = $brand;
    $this->price = $price;
    $this->mileage = $mileage;
  }
  
  public function displayInformation() {
    echo "Brand: " . $this->brand . "<br>";
    echo "Price: " . $this->price . "<br>";
    echo "Mileage: " . $this->mileage . "<br>";
  }
  
  protected function calculateValue() {
    return $this->price - $this->mileage;
  }
  
  private function getMileage() {
    return $this->mileage;
  }
}

$car = new Car("Toyota", 20000, 50000);

$car->displayInformation(); // 输出:Brand: Toyota   Price: 20000   Mileage: 50000
echo $car->brand; // 输出:Toyota

// 以下行代码会报错,因为$price和$mileage属性具有受保护和私有访问权限,无法在类外部访问:
//echo $car->price;
//echo $car->mileage;

// 以下行代码会报错,因为calculateValue和getMileage方法具有受保护和私有访问权限,无法在类外部访问:
//echo $car->calculateValue();
//echo $car->getMileage();

이 예에서는 공개 속성인 브랜드, 보호된 속성 가격, 비공개 속성 마일리지 및 공개 메소드인 displayInformation, 보호된 속성을 사용하여 Car 클래스를 생성합니다. 계산값(calculateValue) 메소드 및 getMileage 비공개 메소드.

요약
이 글에서는 PHP에서 객체 데이터 유형을 사용하는 방법을 배웠습니다. 클래스를 생성하고, 객체를 생성하고, 화살표 구문을 통해 객체의 속성과 메서드에 액세스하는 방법을 배웠습니다. 또한 클래스 상속, 캡슐화 및 액세스 제어의 개념을 배우고 샘플 코드를 통해 연습했습니다. 객체 데이터 유형을 이해하고 능숙하게 사용함으로써 PHP의 객체 지향 프로그래밍 기능을 더 잘 활용하여 복잡한 애플리케이션을 설계하고 개발할 수 있습니다.

위 내용은 PHP에서 객체 데이터 유형을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.