Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzenie wywołania klasy
menic
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Jak sprawdzic czy dana klasa została utworzona za pomocą new bądź poprzez utworzenie dziecka tej klasy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
instanceof can also be used to determine whether a variable is an instantiated object of a class that inherits from a parent class:


Czyli instanceof()em nie sprawdzisz czy OBIEKT jest instancją klasy czy jej rodzica.



Cytat
Jak sprawdzic czy dana klasa została utworzona za pomocą new bądź poprzez utworzenie dziecka tej klasy?

Kazdy obiekt został utworzony new()'em. Ew pozostaje jeszcze unserialize() i clone().

Mozesz tylko pobrac nazwe klasy obiektu. I zawsze poda ci nazwe Klasy, dla ktorej bylo new() wykonane.
Potem mozesz porownywac z nazwami klas: dziecka i rodzica.

Chyba ze o cos innego ci chodzilo, bo ja tak zrozumialem twoje pytanie
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #3





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Cytat(dr_bonzo @ 27.03.2007, 11:28:15 ) *
Czyli instanceof()em nie sprawdzisz czy OBIEKT jest instancją klasy czy jej rodzica.

Jak chce dokładny typ to sprawdza get_class, ale przecież klasy dziedziczące mają wszystkie metody rodzica więc chyba nie ważne dla nas jest czy dziedziczy czy jest tej obiektem tej klasy.

Ale chodziło przecież czy jest "dana klasa została utworzona za pomocą new bądź poprzez utworzenie dziecka tej klasy" więc chodzi zarówno obiekty tej klasy jak i obiekty klas po niej dziedziczących.
Tak więc tu pasuje instanceof, tylko trzeba mieć zmienne przechowujące obiekty i sprawdzić za pomocą tego, a jak znaleźć takie zmienne, to jest już napisane.

menic to tworzysz w obiekt klasy potomnej, w klasie z której dziedziczy? Jak dla mnie trochę dziwne, ale może ma to jakieś zastosowanie...
Możesz przecież dodać pusty konstruktor w klasie potomnej, wtedy nie zostanie wywołany konstruktor klasy z której dziedziczy (tak chociaż powinno być).
Cytat
Note: Parent constructors are not called implicitly if the child class defines a constructor. In order to run a parent constructor, a call to parent::__construct() within the child constructor is required.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 02:06