![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 18.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na początek kod:
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ć? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie tak
![]() Najpierw definiujesz zmienne, wewnatrz klasy dajesz:
Zdefiniowaliśmy także zmienną $Lg, jawnie jako tablicę. I teraz jeśli chcesz wpisać do niej dane już z konstruktora, to:
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. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 18.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź, ale stosując twoje rozwiązanie tworzę nową publiczną tablicę wewnątrz klasy, której przypisuję wartość z konstruktora. A ja chcę przypisać zmiennej $name wartość z wcześniej zadeklarowanej tablicy $Lg, którą mam w osobnym pliku, dzięki czemu kiedy będę chciał w przyszłości przetłumaczyć nazwy na inny język to wszystko mam w jednym miejscu.
Edit: w zasadzie to mogę tworząc obiekt w konstruktorze po prostu dać swoje $Lg i po kłopocie ale jak już zacząłem temat to może i tak ktoś mi wyjaśni czemu Kod global $Lg; mi nie działa?
Ten post edytował BORG 1.09.2012, 21:31:09 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Bo to jest sprzeczne z ideą obiektowości.
Obiekt to jest takie coś, które ma: - SWOJE WŁASNE cechy (czyli zmienne wewnątrz obiektu) - SWOJE WŁASNE metody komunikacji się ze światem (czyli funkcje wewnątrz obiektu) Twoje global w tym kontekście brzmi jak parapsychologia, serio ![]() Tak się nie robi, PHP tego zabrania, koniec dyskusji ![]() Nie będę się rozpisywał, ale więcej informacji masz tu: http://stackoverflow.com/questions/5563758...string-in-class |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował CuteOne 4.09.2012, 10:29:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:16 |