Ключавое слова 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 "Logging to file: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("Test message");
?>

Вынік выканання кода:

php'Logging to file: Test message'

Прыклад

Інтэрфейс можа ўтрымліваць некалькі метадаў, і клас павінен рэалізаваць іх усе:

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 "Area: " . $circle->calculateArea();
?>

Вынік выканання кода:

php'Area: 78.5'

Глядзіце таксама

  • каманду class,
    для аб'явы класаў
  • каманду trait,
    для аб'явы трэйтаў