![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taką klase:
Kiedy wywołuje metody klasy SPLFileObject to pojawia mi się informacja o pobraniu pliku? Mam w kodzie jakiś błąd?
Powód edycji: [Spawnm] poprawiłem bbcode.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Oj namieszałeś, namieszałeś.
Jeśli rozszerzasz jakąś klasę, to nie przesłaniaj jej konstruktora. A jeśli to robisz, to nie twórz kolejnego obiektu, tylko wywołaj konstruktor rodzica: Jak już to zrobisz to możesz wywalić s kodu metodę getFilename, ponieważ jest ona wstawiona w tym miejscu bez potrzeby - przecież występuj ona w klasie rodzica. Resztę będziesz sam w stanie poprawić. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Po co dziedziczysz po SplFileObject skoro w konstruktorze MySPL... tworzysz nową instancję tego obiektu?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 24 Dołączył: 18.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
zdecyduj się na coś albo dziedziczysz (extends) albo tworzysz instancje (new) Rozwiązanie #1 - dziedziczenie
i w całym skrypcie zamień $this->fp-> na $this-> Rozwiązanie #2 - new SplFileObject(); zamień class MySPLFileObject extends SplFileObject na class MySPLFileObject a zamiast
daj
oczywiście możesz zrobić metode getCurrent() w klasie MySPLFileObject ale z tym chyba już sobie poradzisz ![]() Ten post edytował Pr0100 1.07.2009, 20:00:03 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem tak:
Kod function __construct($file){ parent::__construct($file); $this->stats = $this->fstat(); } public function getFileSize(){ return $this->stats['size']; } I mam prośbę, aby ktoś mi wytłumaczył jedną istotną kwestie. Chodzi o $this. Kazaliście mi zmienić Kod return $this->fp->stats(...) na Kod return $this->stats(...) i w zwiażku z tym moje pytanie: kiedy należy urzywać samego $this, a kiedy $this->parametr ? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Podstawowe pytanie: czy rozumiesz o co chodzi w dziedziczeniu?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Tu nawet nie chodzi o pytanie, czy rozumie o co chodzi w dziedziczeniu, o nie rozumie o co chodzi w programowaniu obiektowym. (Nie twierdze że wszystkie rozumy pozjadałem).
-------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ciągle się ucze, ale zawsze mnie ciekawiła ta różnica.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:17 |