Raktažodis interface

Raktažodis interface naudojamas interfeisų kūrimui - specialioms konstrukcijoms, kurios apibrėžia, kuriuos metodus turi įgyvendinti klasė. Interfeisuose yra tik metodų deklaracijos be jų įgyvendinimo. Klasė, kuri įgyvendina interfeisą, turi turėti visus interfeise deklaruotus metodus.

Sintaksė

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

Pavyzdys

Sukurkime paprastą interfeisą ir jį įgyvendinančią klasę:

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

  class FileLogger implements Logger {
    public function log($message) {
      echo "Prisijungiama prie failo: " . $message;
    }
  }

  $logger = new FileLogger();
  $logger->log("Testinis pranešimas");
?>

Kodo vykdymo rezultatas:

php'Prisijungiama prie failo: Testinis pranešimas'

Pavyzdys

Interfeisas gali turėti kelis metodus, ir klasė turi įgyvendinti juos visus:

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

Kodo vykdymo rezultatas:

php'Plotas: 78.5'

Taip pat žiūrėkite

  • komandą class,
    klasių deklaravimui
  • komandą trait,
    traitų deklaravimui