Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wywoływanie class za pomoca ::
AcidBurnt
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 1
Dołączył: 13.04.2003
Skąd: z ławki przed blokiem

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


Witam

wiec sprawa taka jestem troszke zielony jeszcze w programowaniu obiektowym, tzn w sumie juz wiem sporo, ale jeszcze mało ;p

dobra sprawa jest taka mam dosc sporo klase do zarzadzania produktami

i wielu miejscach na stronie potrzebuje wybrac tylko 1 produkt i go wysiwtlic wiec stworzyłem sobie metode getOne($id)

no ale zała klasa w tym przypadku nie jest mi potrzebna w wiekszej czesci strony potrzebuje tylko tej jednej metody

dogrzebałem się gdzies aby wyolac to w ten sposob:

  1. <?php
  2.  
  3. pro::getOne($id)
  4.  
  5. ?>


tylko mam tutaj problema

Cytat
Fatal error: Using $this when not in object context in /home/sztucer/public_html/test/lib/pro/pro.class.php on line 19


no własnie problem z $this

tutaj konkretnie z $this -> db

jest to połaczenie z baza przekazywane do konstruktora:

  1. <?php
  2.  
  3. class pro{
  4. var $db;
  5. function __construct($db){
  6. $this -> db = $db
  7. }
  8. }
  9.  
  10. // w $db połączenie z ADODB
  11. $pro = new pro($db)
  12.  
  13. ?>


moze mi ktoś powiedziec jak to objesc ;> oczywiscie przy zalozeniu ze funkcionowanie calosci nie zmieni sie w kilku miejsach ptorzebuje wywolac metode getOne wewnatrz pozostałych metod obiektu:)

mam nadzieje ze w miare jestno opisałem problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Fipaj
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


W metodach statycznych nie możesz odwoływać się do pseudozmiennej $this -> poczytaj o self::$zmienna. Ale i tak self::$zmienna odniesie się tylko do zmiennych statycznych... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Obejść jest wiele. Najlepiej wydziel z klasy metody do łączenia z bazą i podaj je do metody statycznej przez argument ;-)
Go to the top of the page
+Quote Post
hugo_amv
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 22.06.2005
Skąd: Lublin

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


Nie ma różnicy czy odwołasz się do metody statycznej, bez tworzenia obiektu danej klasy przez:
  1. <?php
  2.  
  3. pro::getOne($id)
  4.  
  5. ?>


Czy utworzysz obiekt i wowołasz jego metode
  1. <?php
  2. $obj = new pro();
  3. $obj->getOne($id)
  4. ?>

I tak kod całej klasy zostanie załadowany. Właściwie nie wiem co chcesz zyskać? Jeżeli już chcesz się korzystać z metod statycznych to muszą one korzystać ze zmiennych statycznych. Odwoływać się do nich musisz przez self::$zmienna a nie $this->$zmienna.
Go to the top of the page
+Quote Post
AcidBurnt
post
Post #4





Grupa: Zarejestrowani
Postów: 215
Pomógł: 1
Dołączył: 13.04.2003
Skąd: z ławki przed blokiem

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


hugo_amv no włąsnie szukam rozwiazania jak nie ładowac całej kalsy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował AcidBurnt 14.04.2006, 15:10:21
Go to the top of the page
+Quote Post
mariuszn3
post
Post #5





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Cytat(AcidBurnt @ 2006-04-14 14:09:57)
hugo_amv no włąsnie szukam rozwiazania jak nie ładowac całej kalsy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

yy.. to tak jakbyś chciał załadować pół funkcji.. albo wywołać pół komendy..
Czy jesteś pewien, że wiesz o czym piszesz?
Nie możesz includować połowy pliku w php (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 22:33