Võtmesõna interface

Võtmesõna interface kasutatakse liideste loomiseks - spetsiaalseteks konstruktsioonideks, mis määratlevad, millised meetodid peab klass realiseerima. Liidesed sisaldavad ainult meetodite deklaratsioone ilma nende realiseerimiseta. Klass, mis realiseerib liidese, peab sisaldama kõiki liideses deklareeritud meetodeid.

Süntaks

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

Näide

Loome lihtsa liidese ja klassi, mis seda realiseerib:

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

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

  $logger = new FileLogger();
  $logger->log("Testsõnum");
?>

Koodi täitmise tulemus:

php'Logimine faili: Testsõnum'

Näide

Liides võib sisaldada mitut meetodit ja klass peab realiseerima need kõik:

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

Koodi täitmise tulemus:

php'Pindala: 78.5'

Vaata ka

  • käsku class,
    klasside deklareerimiseks
  • käsku trait,
    trait'ide deklareerimiseks