Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Globalna tablica wewnątrz klasy
BORG
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 18.12.2006

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


Na początek kod:
  1. lang("items");
  2. echo $Lg['Sword'];
  3. class Item
  4. {
  5. //global $Lg;
  6. public $name, $desc, $type;
  7. public function __construct($name, $desc = null)
  8. {
  9. $this->name = $Lg[$name];
  10. echo $Lg['Sword'];
  11. }
  12. }


Funkcja lang includuje mi plik items.php w którym mam tablice $Lg. Dla testu czy wyświetlam zawartość $Lg['Sword'] - działa. Dalej wewnątr klasy chcę w konstruktorze przypisać przedmiotowi odpowiednią nazwę, niestety nie ma żadnych efektów. Dla testów próbuję wyświetlić $Lg['Sword'] i nic nie pokazuje. Kiedy dodaję global $Lg; pojawia się błąd:
Parse error: syntax error, unexpected T_GLOBAL, expecting T_FUNCTION in /includes/class.php on line 5

Dopiero zaczynam bawić się klasami i nie mam pojęcia jak to zrobić, może mi ktoś wytłumaczyć jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Nie tak (IMG:style_emoticons/default/smile.gif)
Najpierw definiujesz zmienne, wewnatrz klasy dajesz:
  1. class Item
  2. {
  3. // Definiujemy zmienne publiczne - ale WEWNĄTRZ KLASY, czyli dostępne dla wszystkich metod klasy
  4. public $name, $desc, $type;
  5. public Lg = array();

Zdefiniowaliśmy także zmienną $Lg, jawnie jako tablicę. I teraz jeśli chcesz wpisać do niej dane już z konstruktora, to:
  1. public function __construct($name, $desc = null)
  2. {
  3. $this->Lg = $name;
  4. // i dalsze rzeczy, które robi konstruktor
  5. }


Zauważ, że w konstruktorze $name to jest ciągle odwołanie do parametru konstruktora, a $this->name do własności obiektu. Te rzeczy niekoniecznie muszą być równe, chyba że stosujesz taką mnemotechnikę nazewnictwa zmiennych przekzywanych w metodach obiektu, która w definicji metody stosuje takie nazwy zmiennych, jak nazwy własności obiektu.
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: 7.10.2025 - 05:16