Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Classes
vived7
post 3.10.2010, 13:43:40
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 29.01.2009

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
kefirek
post 3.10.2010, 13:55:08
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


  1. if (class_exists("$name")){
  2.  
  3. } else {
  4.  
  5. }
Go to the top of the page
+Quote Post
vived7
post 3.10.2010, 14:13:02
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 29.01.2009

Ostrzeżenie: (0%)
-----


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()
Go to the top of the page
+Quote Post
yevaud
post 3.10.2010, 14:20:02
Post #4





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Crozin
post 3.10.2010, 14:27:59
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:08