Interfejsy a typy unii

Założenie: Pokażemy, jak zdefiniować interfejs w PHP, który akceptuje lub zwraca wartości różnych typów danych za pomocą typów unii.

Krok po kroku:

  1. Definicja interfejsu z typem unii: Zdefiniujmy interfejs DataProcessor, który ma metodę process przyjmującą argument typu int|string i zwracającą int|string|float:
  2. 
    interface DataProcessor {
      public function process(int|string $data): int|string|float;
    }
    				

    Ten kod definiuje interfejs z metodą process, która może przyjąć zarówno liczbę całkowitą (int), jak i ciąg znaków (string) jako argument. Metoda może zwrócić liczbę całkowitą, ciąg znaków lub liczbę zmiennoprzecinkową.

  3. Implementacja interfejsu: Stwórzmy klasę StringProcessor implementującą ten interfejs:
  4. 
    class StringProcessor implements DataProcessor {
      public function process(int|string $data): int|string|float {
        if (is_string($data)) {
          return strlen($data); // Zwraca długość stringa (int)
        } else {
          return $data * 2; // Zwraca podwojona wartość (int)
        }
      }
    }
    				

    Klasa StringProcessor implementuje metodę process. Sprawdza typ danych wejściowych i zwraca odpowiednią wartość.

  5. Użycie interfejsu: Użyjmy stworzonej klasy:
  6. 
    $processor = new StringProcessor();
    $result1 = $processor->process("Hello"); // Zwróci 5 (długość stringa)
    $result2 = $processor->process(10); // Zwróci 20 (podwojona wartość)
    echo "Result 1: " . $result1 . "\n";
    echo "Result 2: " . $result2 . "\n";
    				

    Ten kod tworzy obiekt StringProcessor i wywołuje metodę process z różnymi argumentami. Wyniki są następnie wyświetlane.

Ten przykład pokazuje podstawowe wykorzystanie typów unii w definicjach interfejsów w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi kombinacjami typów danych!

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *