![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jestem nowym użytkownikiem na forum, więc może na początek się przywitam. A więc witam (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Niedawno zacząłem się uczyć PHP i napotkałem na taki oto problem: otóż mam dwie klasy, jedna dziedzicząca
CODE class A { private $a1; //... } class B extends A { var $a2; //... } Potem wpisuje taki oto kod: CODE $b=new B(); $b->a1=11; echo "$b->a1;"; I normalnie wyświetla mi wartość zmiennej $a1 równą 11, a przecież, z tego co wyczytałem klasa dziedzicząca nie powinna dziedziczyć pól prywatnych (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Nie powinno tu być jakiegoś błędu? |
|
|
![]() |
![]()
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%) ![]() ![]() |
W koncu konkretny kod ktory mozna uruchomic.
Wiec tak: - Klasa B nie posiada zadeklarowanej wlasciwosci a1 [jest ona tylko w klasie A] - widocznie php zezwala na ustawianie zmiennych bez ich deklaracji [nie korzystam z tego wiec nie wiedzialem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ] wiec $b->a1 to nie jest to samo co $a1 z klasy A [sproboj $a = new A(); $a->a1 = 'cos'; dostaniesz blad]
Kod Op1:
Op3: 11 VAL: 11 Ten post edytował dr_bonzo 29.06.2008, 16:00:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 02:38 |