interface 키워드

키워드 interface는 인터페이스를 생성하는 데 사용됩니다. 인터페이스는 클래스가 구현해야 하는 메서드를 정의하는 특별한 구조입니다. 인터페이스에는 메서드의 구현 없이 선언만 포함됩니다. 인터페이스를 구현하는 클래스는 해당 인터페이스에 선언된 모든 메서드를 포함해야 합니다.

구문

phpinterface InterfaceName {
  public function method1();
  public function method2($param);
  // ...
}

예제

간단한 인터페이스와 이를 구현하는 클래스를 만들어 봅시다:

php<?php
  interface Logger {
    public function log($message);
  }

  class FileLogger implements Logger {
    public function log($message) {
      echo "파일에 로깅: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("테스트 메시지");
?>

코드 실행 결과:

php'파일에 로깅: 테스트 메시지'

예제

인터페이스는 여러 메서드를 포함할 수 있으며, 클래스는 이를 모두 구현해야 합니다:

php<?php
  interface Shape {
    public function calculateArea();
    public function calculatePerimeter();
  }

  class Circle implements Shape {
    private $radius;
    
    public function __construct($radius) {
      $this->radius = $radius;
    }
    
    public function calculateArea() {
      return 3.14 * $this->radius * $this->radius;
    }
    
    public function calculatePerimeter() {
      return 2 * 3.14 * $this->radius;
    }
  }

  $circle = new Circle(5);
  echo "면적: " . $circle->calculateArea();
?>

코드 실행 결과:

php'면적: 78.5'

함께 보기

  • 클래스를 선언하는 class 명령어
  • 트레이트를 선언하는 trait 명령어