![]() |
![]() |
![]()
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?
|
|
|
![]() |
![]()
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 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 02:06 |