Abstrakte metoder i tregjer i OOP i PHP

I tregjer kan noen metoder deklareres abstrakte. I dette tilfellet vil klassen som bruker denne tregjen, være forpliktet til å implementere en slik metode. Samtidig kan ikke abstrakte metoder i tregjen være private.

La oss se på et eksempel. La oss si at vi har en tregj som denne:

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

La oss si at vår tregj brukes av klassen Test. Tilstedeværelsen av en abstrakt metode i tregjen vil tvinge programmereren til å implementere den i klassen, ellers vil det oppstå en PHP-feil.

La oss lage klassen Test sammen med metoden method2:

Test.php<?php
  class Test
  {
    use TestTrait; // bruker tregjen
    
    // Implementerer den abstrakte metoden:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

Kopier koden til min tregj TestTrait og koden til klassen min Test. Fjern fra klassen metoden method2. Forsikre deg om at fraværet av dens implementering vil føre til en PHP-feil.