![]() |
![]() |
![]()
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: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie chodzi mi o to, że to przypisanie nie powinno być możliwe, bo przecież $a1 jest prywatne, czyli klasa B tego pola nie dziedziczy. A jednak $b->a1=11 wykonuje to przypisanie i wyświetla tą wartość. Nie rozumiem dlaczego tak się dzieje i nie wyświetla błędu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Jeśli chodz o funkcje __set to z tego co się zorientowałem to ustawia ona wartość pola klasy, a nie tworzy je dynamicznie. Czy nie? (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 17:13 |