Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rzutowanie obiektow
Teamon
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 18.09.2006

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


Jest sobie klasa A, ktorej bardzo nie chcialbym zmieniac.
Stworzylem klase B extends A.
Problem w tym, jak zrobic zeby to dzialalo:
Kod
$a = new A();
$b = (B)$a;


?

(Aha, jakby to cos dalo albo da sie to zrobic inaczej to chodzi mi o dodanie metody do klasy sfGuardUser, a rzutowanie jest potrzebne dlatego ze sfGuardUserPear::retrieveByUsername() zwraca obiekt typu sfGuardUser. Chodzi oczywiscie o Symfony)
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%)
-----


Nie ma rzutowania w php. Po prostu uzywasz metod z klasy ktorej instacja jest ten obiekt.

  1. <?php
  2. $a = new A();
  3. $b = (B)$a;
  4. ?>


Po zatym takie cos nie przejdzie bo $a jest instacja klasy A, a nie B.
Nie zmienisz typu obiektu (z A na (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) , mozesz tylko zmienic typ referencji do tego obiektu (z A do (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) dzieki czemu bedziesz mial (gdyby to byla java/c++) dostep do metod klasy B, spod tej referencji.

Sens ma dopiero takie cos

Kod
//java
A a = new B();
B b = (B)a;
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 8.10.2025 - 13:38