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:
- Definicja interfejsu z typem unii: Zdefiniujmy interfejs
DataProcessor
, który ma metodęprocess
przyjmującą argument typuint|string
i zwracającąint|string|float
: - Implementacja interfejsu: Stwórzmy klasę
StringProcessor
implementującą ten interfejs: - Użycie interfejsu: Użyjmy stworzonej klasy:
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ą.
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ść.
$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!