Obiekty klasy mogą być elementami tablicy:
| |
class osoba
{
var $imie, $email;
}
$pracownicy[0]=new osoba;
$pracownicy[0]->imie="Stefan";
$pracownicy[0]->email="stefan@cos.pl";
$pracownicy[1]=new
osoba;
$pracownicy[1]->imie="Adam";
$pracownicy[1]->email="adam@cos.pl";
$pracownicy[2]=new
osoba;
$pracownicy[2]->imie="Wojtek";
$pracownicy[2]->email="wojtek@cos.pl";
|
|
Żaden problem, prawda? Rzeczywiście. Ale kłopot pojawi się gdy
będzie trzeba np. posortować tę tablicę alfabetycznie według
imion. Gdyby była to zwykła tablica z imionami - możnaby po prostu
użyć funkcji sort. Ale tutaj będzie potrzeban funkcja usort. Funkcja
usort różni się od sort tym, że pozwala użyć własnej funkcji do porównywania elementów.
Zaczniemy więc od definicji tej funkcji:
| |
function cmp($a, $b)
{
return(strcmp($a->imie, $b->imie));
}
|
|
Funkcja cmp musi zwracać -1, 0 lub 1 w zależności od tego, czy pierwszy parametr jest
mniejszy, równy lub większy od drugiego. Teraz posortowanie tej
tablicy będzie już proste:
| |
usort($pracownicy, "cmp");
|
|