![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 24.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie!
Od jakiegoś czasu próbuję opanować OOP w PHP i idzie mi, nie przymierzając, słabo. Mój problem polega na tym, że nie potrafię z jednej klasy odwołać się do metod innej. Nie wiem, czy to nie jest przypadkiem durnota jakaś i mój błąd w próbie myślenia obiektowo... proszę o pomoc w każdym bądź razie. Mam klasę MySqlEng(). Konstruktor tej klasy tworzy połączenie z bazą danych i zapisuje uchwyt połączenia w prywatnej zmiennej klasy. Dalej mam 4 metody: selectQuery, updateQuery, insertQuery i deleteQuery, które przygotowują w prywatnej zmiennej $query string, który metodzie doQuery() służy do wykonania odpowiedniego zapytania w bazie danych. Dochodzi jeszcze metoda fetchResults(), która pozwala na przewijanie rekordów uzyskanych w odpowiedzi na zapytanie. Standardowo używam tej klasy tak:
Próbuję teraz złożyć klasę pagesSupport(), której zadaniem będzie: dodawanie stron do bazy danych, ich edycja i zmiana, oraz wyciągnie z bazy danych o odpowiedniej podstronie i wyswietlanie jej na ekranie. Zwykłe użycie wewnątrz metody tej klasy metody $sql->selectQuery() wywołuje błąd... Jak skorzystać z klasy MySqlEng() wewnątrz klasy pagesSupport()(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Podaję też kod klasy MySqlEng():
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Albo przekazujesz obiekt klasy MysqlEng do obiektu klasy pagesSupport poprzez argument jakiejś metody/konstruktora:
A w konstruktorze bądź innej metodzie:
Albo korzystając z Singletonu, Rejestru czy jeszcze czegos innego, byle nie globali. EDIT: I to o co pytasz to obiekt wewnątrz obiektu. PHP nie umożliwia zapiania klasy w klasie (nested classes). Ten post edytował Crozin 28.12.2008, 13:08:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 15:04 |