Sortowanie tablic z użyciem technik programowania obiektowego
Założenie: Napiszemy klasę, która będzie sortować tablicę obiektów reprezentujących produkty, wykorzystując interfejs sortowania.
Krok po kroku:
- Definicja interfejsu sortowania: Tworzymy interfejs
Sortable
, który definiuje metodęcompare
odpowiedzialną za porównywanie dwóch obiektów. - Klasa produktu: Tworzymy klasę
Product
implementującą interfejsSortable
. Metodacompare
porównuje ceny produktów. - Sortowanie tablicy: Używamy funkcji
usort
do sortowania tablicy obiektówProduct
. Funkcjausort
przyjmuje jako drugi argument funkcję callback, która porównuje dwa elementy. W tym przypadku używamy metodycompare
z klasyProduct
.
interface Sortable {
public function compare(Sortable $other): int;
}
class Product implements Sortable {
public string $name;
public float $price;
public function __construct(string $name, float $price) {
$this->name = $name;
$this->price = $price;
}
public function compare(Sortable $other): int {
if ($this->price < $other->price) {
return -1;
} elseif ($this->price > $other->price) {
return 1;
} else {
return 0;
}
}
}
$products = [
new Product("Produkt A", 10.99),
new Product("Produkt B", 5.50),
new Product("Produkt C", 20.00),
];
usort($products, function (Product $a, Product $b) {
return $a->compare($b);
});
foreach ($products as $product) {
echo $product->name . " - " . $product->price . "\n";
}
Ten przykład pokazuje podstawowe zastosowanie programowania obiektowego do sortowania tablic w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi metodami sortowania.