Nyckelordet interface

Nyckelordet interface används för att skapa gränssnitt - speciella konstruktioner som definierar vilka metoder en klass måste implementera. Gränssnitt innehåller endast deklarationer av metoder utan deras implementation. En klass som implementerar ett gränssnitt måste innehålla alla metoder som deklarerats i gränssnittet.

Syntax

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

Exempel

Låt oss skapa ett enkelt gränssnitt och en klass som implementerar det:

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

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

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

Resultat av kodkörning:

php'Loggar till fil: Testmeddelande'

Exempel

Ett gränssnitt kan innehålla flera metoder, och klassen måste implementera alla:

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();
?>

Resultat av kodkörning:

php'Area: 78.5'

Se även

  • kommandot class,
    för att deklarera klasser
  • kommandot trait,
    för att deklarera traits