Nøkkelordet interface

Nøkkelordet interface brukes til å opprette grensesnitt - spesielle konstruksjoner som definerer hvilke metoder en klasse må implementere. Grensesnitt inneholder kun metodeerklæringer uten deres implementering. En klasse som implementerer et grensesnitt, må inneholde alle metoder som er erklært i grensesnittet.

Syntaks

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

Eksempel

La oss opprette et enkelt grensesnitt og en klasse som implementerer det:

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

  class FileLogger implements Logger {
    public function log($message) {
      echo "Logger til fil: " . $message;
    }
  }

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

Resultat av kjøring av kode:

php'Logger til fil: Testmelding'

Eksempel

Et grensesnitt kan inneholde flere metoder, og klassen må implementere alle:

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

Resultat av kjøring av kode:

php'Areal: 78.5'

Se også

  • kommandoen class,
    for å erklære klasser
  • kommandoen trait,
    for å erklære trekk