Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Classes
Forum PHP.pl > Forum > Przedszkole
vived7
Witam!
Mam pytanie, wiem że istnieje takie coś jak funkcja __autoload która może być wywoływana w przypadku gdy klasa nie istnieje, a moje pytanie brzmi czy jest jakaś funkcja która będzie się wywoływała przed wywołaniem istniejącej klasy (i nie chodzi mi tu o metodę __construct w tejże klasie ale osobną funckję która będzie uniwersalna dla wszystkich klas)
kefirek
  1. if (class_exists("$name")){
  2.  
  3. } else {
  4.  
  5. }
vived7
mi chodziło raczej że jak wywołuje klasę np.
  1. $a = new Klasa;


to przed tym niż wywołana zostanie metoda __construct w klasie Klasa to np. żeby wowłana została jeszcze funkcja __something()
yevaud
niech Twoje klasy dziedzicza po jakiejs konkretnej klasie gdzie dodaj sobie taka metode
jak jestes bardzo zdesperowany zeby zepsuc php to mozesz sprobowac dolaczyc jakies __construct do stdClass
Crozin
Na poziomie języka nie ma nic takiego w PHP. Mógłbyś za to zrobić coś w stylu:
  1. function newInstance($className, array $arguments = array()) {
  2. // wywołaj coś tam
  3.  
  4. $reflection = new ReflectionClass($className);
  5. return $reflection->newInstanceArgs($arguments);
  6. }
  7.  
  8. $a = newInstance('Klasa');
  9. $b = newInstance('Klasa', array(1, 23, 'argument #3'));
Ale raczej nie jest to zbyt wygodne.

Zapewne AOP byłoby rozwiązaniem. PHP nie realizuje tego paradygmatu programowania, ale ponoć powstało kilka implementacji (nie używałem ich nigdy).

Ewentualnie powiedz co próbujesz zrobić. Być może źle kombinujesz. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.