Wyszukiwanie wartości z użyciem technik metaprogramowania
Założenie: Stworzymy prosty przykład, który demonstruje wyszukiwanie wartości w tablicy asocjacyjnej (symulującej encję) na podstawie nazwy klucza (metadanych).
Krok po kroku:
- Definicja tablicy asocjacyjnej (encji):
- Funkcja wyszukiwania:
- Wyszukiwanie wartości:
$user = [
'firstName' => 'Jan',
'lastName' => 'Kowalski',
'age' => 30
];
Tworzymy tablicę asocjacyjną $user
, która reprezentuje naszą “encję” z danymi użytkownika.
function findValue(array $entity, string $key): mixed {
return $entity[$key] ?? null; // Zwraca wartość lub null, jeśli klucz nie istnieje
}
Funkcja findValue
przyjmuje tablicę i nazwę klucza jako argumenty. Operator ??
zapewnia zwrot wartości null
, jeśli klucz nie istnieje w tablicy, zapobiegając błędom.
$firstName = findValue($user, 'firstName');
$age = findValue($user, 'age');
$city = findValue($user, 'city'); // Klucz 'city' nie istnieje
echo "Imię: " . $firstName . "\n";
echo "Wiek: " . $age . "\n";
echo "Miasto: " . $city . "\n"; // Wyświetli null
Wywołujemy funkcję findValue
, aby pobrać wartości z tablicy $user
. Wyniki są następnie wyświetlane.
Ten przykład pokazuje podstawowe wykorzystanie metaprogramowania do dynamicznego dostępu do danych. W bardziej zaawansowanych scenariuszach można wykorzystać refleksję do analizy struktury klas i dynamicznego wywoływania metod.