Magiczne metody (__get, __set, __isset, __unset)
Założenie: Stworzymy klasę z magicznymi metodami, aby dynamicznie zarządzać dostępem do jej właściwości.
Krok po kroku:
- Definicja klasy z magicznymi metodami:
data[$name] ?? null; } public function __set($name, $value) { $this->data[$name] = $value; } public function __isset($name) { return isset($this->data[$name]); } public function __unset($name) { unset($this->data[$name]); } } ?>
Tworzymy klasę `User` z prywatną tablicą `$data` do przechowywania danych. Metody `__get`, `__set`, `__isset` i `__unset` obsługują dostęp do właściwości w sposób dynamiczny.
- Użycie klasy:
name = "Jan Kowalski"; $user->age = 30; echo "Imię: " . $user->name . "
"; // Wyświetli: Imię: Jan Kowalski echo "Wiek: " . $user->age . "
"; // Wyświetli: Wiek: 30 if (isset($user->city)) { echo "Miasto: " . $user->city . "
"; } else { echo "Miasto nie jest zdefiniowane.
"; // Wyświetli to } unset($user->age); if (isset($user->age)) { echo "Wiek: " . $user->age . "
"; } else { echo "Wiek został usunięty.
"; // Wyświetli to } ?>Tutaj tworzymy obiekt klasy `User`, ustawiamy wartości właściwości `name` i `age`, a następnie je wyświetlamy. Demonstrujemy również użycie `isset` i `unset`.
Ten przykład pokazuje, jak magiczne metody pozwalają na elastyczne zarządzanie danymi w klasie.
Zachęcamy do dalszego zgłębiania tematu programowania obiektowego w PHP!