Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] singleton odwolanie do obiektu i metody w pliku include
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


index.php

  1. final class Load
  2. {
  3. private static $oInstance = false;
  4. public $name;
  5. public static function getInstance($name)
  6. {
  7. if( self::$oInstance == false )
  8. {
  9. self::$oInstance = new $name();
  10. }
  11. return self::$oInstance;
  12. }
  13.  
  14. private function __construct() {}
  15.  
  16. } // end class Load
  17.  
  18.  
  19.  
  20.  
  21. class NextClass
  22. {
  23. public function __construct()
  24. {
  25. echo '<br />To jest klasa: '.(__CLASS__);
  26. }
  27.  
  28. public function metoda()
  29. {
  30. echo '<br />to jest metoda: '.(__METHOD__);
  31.  
  32. }
  33.  
  34. }
  35.  
  36.  


wywolanie:

  1. Load::getInstance('NextClass')->metoda();


Wyswietli

  1. To jest klasa: NextClass
  2. to jest metoda: NextClass::metoda


A jeśli w pliku index.php dam include jakiegoś pliku a w nim:

  1. class Mapaa
  2. {
  3. public function __construct()
  4. {
  5. echo '<br />To jest klasa: '.(__CLASS__);
  6. }
  7.  
  8.  
  9. public function pozycja()
  10. {
  11. echo '<br />jakaś tam';
  12. }
  13. }


odwolanie:
  1. Load::getInstance('Mapaa')->pozycja();


Dostaję komunikat:

  1. Fatal error: Call to undefined method NextClass::pozycja() in (tu linia pliku właśnie z tym odwolaniem)


Chciałbym uzyskać efekt tworzenia obiektu i ładowania ich metod bez Tworzenia dla nich zmiennych w stylu:

  1. $cos = new Cos();
  2. $cos->metoda();


Tak aby takie odwołanie działało wszędzie, w każdym includowanym pliku, bez użycia $GLOBAL. Czy jest to możliwe? Dodam że wszystkie czynności, zachodzą w pliku index.php.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:35