Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie wszystkich instancji klasy wraz z wywołaniem
Forum PHP.pl > Forum > PHP
Pioruniasty
Witam,

Piszę moduł wiadomości oparty na klasach i chciałbym dowiedzieć się jak uzyskać wszystkie instancje z danej klasy (powiedzmy, że chcę utworzyć funkcję wewnątrz klasy nazwaną getNews(), która pobiera wszystkie zapisane wiadomości klasy) oraz jak potem w kodzie odnieść się do tej funkcji (wiem, że tworzymy nowy obiekt mniej więcej tak: $object = new $class() lecz ja nie chciałbym wywoływać nowej instancji i czy jest taka możliwość)?

Moja klasa wygląda aktualnie tak:
  1. class news {
  2. static $instances = array();
  3.  
  4. private $newsTitle = "";
  5. private $shortText = "";
  6. private $longText = "";
  7. private $authorID = 0;
  8.  
  9. public function __contruct() {
  10. self::$instances[] = $this;
  11. }
  12.  
  13. public function setTitle($title) {
  14. $this->newsTitle = $title;
  15. }
  16. }


Jak widzicie jest tam zaimplementowany już konstruktor. Przy okazji chciałbym zapytać czy jest on dobrze napisany?
Pyton_000
  1. $inst = news::$instances;
  2. foreach($inst as $news) {
  3. echo $news->getTitle();
  4. }
Pioruniasty
Ok, stokrotne dzięki to jeszcze zapytam czy w ogóle jest sens wykorzystywania OOP w takim systemie? I dlaczego?
Aha i jeszcze czy mogę utworzyć obiekt klasy wewnątrz tej klasy?

//EDIT

Jednak coś robię źle, bo utworzyłem nowy obiekt klasy 'news' lecz wielkość tablicy $instances to wciąż 0. Oczywiście wykorzystuję mój kod podany wyżej. Nic nie zmieniałem. Jeżeli chodzi o sprawdzenie wielkości tablicy używam funkcji count().

//EDIT2

Wszystko już gra, popełniłem literówkę tongue.gif . Błąd znajdziecie wyżej ofc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.