Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Using $this when not in object context
ghost1511
post 3.08.2012, 08:41:29
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

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


Wywołanie funkcji getJezyk() wywołuje błąd
  1. Fatal error: Using $this when not in object context in D:\xampp\htdocs\zenex_pl\include\class\tables\class.operator.php on line 22


Poniżej kod klasy
  1. <?php
  2. class Operator implements IOperator{ // klasa oparta na wzorcu Singleton;
  3.  
  4. private static $oInstance=false;
  5. private $jezyk_ope;
  6.  
  7. public static function getInstance($login=false){
  8. if(!self::$oInstance)
  9. self::$oInstance=new Operator($login);
  10. return self::$oInstance;
  11. }
  12.  
  13. private final function __construct($login){
  14.  
  15. if(!$login){ // uzytkownik niezalogowany
  16. $this->jezyk_ope=new Jezyk(Config::DEF_LANG_ID);
  17. }
  18.  
  19. }
  20.  
  21. public function getJezyk(){
  22. return $this->jezyk_ope->getId();
  23. //return Operator::getInstance()->jezyk_ope->getId();
  24. }
  25.  
  26. }
  27. ?>


Linia 22 wywołuje błąd. Linia wykomentowana 23 działa poprawnie, jednak sposób ten wydaje mi się mało elegancki. W jaki sposób odwoływać się do obiektu, aby nie wywoływać tego błędu ?
Go to the top of the page
+Quote Post
nospor
post 3.08.2012, 09:47:54
Post #2





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




A czy ty przypadkiem metody getJezyk() nie wywołujesz statycznie? Bo na 99% jestem przekonany, że tak właśnie robisz. A skoro coś wywołujesz statycznie to logiczne przecież, że to coś nie ma $this...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ghost1511
post 3.08.2012, 10:36:18
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

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


Faktycznie problemem było błędne wywołanie wink.gif Dziękuję za pomoc wink.gif
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 25.04.2025 - 23:34