![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php class System { public $DBhost = 'test'; public $DBuser; public $DBpass; public $DBdatabase; } class DB extends System { public function connect(){ echo $this->DBhost; } } $System = new System(); $System->DB = new DB(); $System->DBhost = 'localhost'; echo $System->DB->connect(); // TUTAJ ?> Witam, czy któryś z Panów mógłby mi wytłumaczyć dlaczego oznaczona linijka (//TUTAJ) wyrzuca na ekran "test" a nie "localhost" i jak sprawić żeby wartość localhost dobrze się przypisywała. Pozdrawiam, Sim00n. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no bo localhost przypisałeś do zmiennej w obiekcie System a nie DB
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 267 Pomógł: 36 Dołączył: 8.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ wartość przypisujesz tylko do zmiennej $System->DBHost, daj print tej zmiennej to będzie poprawnie. A z funkcja ->connect(); nie działa ponieważ zmienna ($System->DB) ma swoje zmienne odziedziczone po klasie System, w końcu z niej dziedziczy, a funkcja connect właśnie z tych zmiennych korzysta
![]() Poprawna wersja: Kod $db = new DB;
$db>DBhost = 'localhost'; echo $db->connect(); |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
No tylko problem w tym, że ja chciałbym zachować zapis
$System->DB->connect ponieważ to ładniej wygląda i moim zdaniem jest czytelniej pogrupowane. Jakieś pomysły jak to zrobić ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Witam, czy któryś z Panów Może i nie jest to liczba grupa, ale panie też zajmują się programowaniem.Kilka błędów:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:33 |