Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasa nie widzi zmiennych z poza niej samej.
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


witam,

mam taki kod

  1. <?php
  2.  
  3. $example = "test"; // includowane gdzies tam ...
  4.  
  5. class main
  6. {
  7.  
  8. public function ble()
  9. {
  10. echo $example
  11. }
  12. }
  13. ?>


jak zrobic zeby ta klasa ja widzial nie chce stosowac gloabl

Ten post edytował acztery 4.08.2006, 19:26:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athabus
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


acztery - nie wiem czy dobrze zrozumiałem zamysł, dla jakiego stworzyłeś ten program, ale chyba coś pokręciłeś ze zmiennymi itd.

Na początek wstaw sobie coś takiego na początku skryptu
  1. <?php
  2. ?>
- dzięki temu będą wyświetlane wszelkie ostrzerzenia itp (domyślnie php nie wyświetla wszystkiego. Oczywiście w wersji ostatecznej skryptu lepiej to usunać, ale przy projektowaniu jak najbardziej się przydaje.

W twoim przykładzie serwer zwrócił aż 4 ostrzeżenia.


Klasę możesz napisać np. tak (pozwoliłem sobie nieco zmienić nazewnictwo zmiennych/funkcji, bo konwencja, którą przyjmujesz trochę jest myląca. Dalej nie wiem od czego pochodzi skrót meUID czy meSES ale je zostawiłem bez zmian).

  1. <?php
  2. $meUID = 'jestem meUID';
  3.  
  4. class b
  5. {
  6.  
  7. private $meUID;
  8. private $meSES;
  9. public function __construct($meUID='', $meSES='')
  10. {
  11. $this->meUID=$meUID;
  12. $this->meSES=$meSES;
  13. }
  14.  
  15. public function getMeUID()
  16. {
  17.  
  18. return $this->meUID;
  19. }
  20. public function setMeUID($newValue)
  21. {
  22. //tutaj możesz sprawdzić czy $newValue spełnia twoje wymagania
  23. //np czy ma odpowiednią wartość, czy jest stringiem itp
  24. //jeśli sprawdziłeś to możesz spokojnie nadać wartość
  25.  //np sprawdzamy czy string nie jest pusty - oczywiście należałoby jeszcze sprawdzić czy to w ogóle jest string itp
  26. if ($newValue=='')
  27. {
  28. throw new Exception ('string nie moze byc pusty');
  29. }
  30. else
  31. {
  32. $this->meUID=$newValue;
  33. }
  34. }
  35. //odpowiednie funkcje get i set musisz dopisac do kazdej zmiennej do ktorej
  36. //chcesz miec dostep z poza klasy
  37. }
  38.  
  39. $obj = new b ('foo', 'bar');
  40. echo $obj->getMeUID();
  41. ?>

//edit
PS. Oczywiscie można również użyć metod magicznych __get i __set do dostępu do zmiennych

Ten post edytował athabus 6.08.2006, 10:57:47
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 08:15