[PHP] Publiczna zmienna w funkcji |
[PHP] Publiczna zmienna w funkcji |
19.05.2013, 21:48:00
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 22.08.2012 Ostrzeżenie: (0%) |
Witam,
pracuję nad stworzeniem klasy struktur (znanej bardzo dobrze z C++), niestety mam problem. Próbuję zrobić funkcję, która tworzy dla klasy publiczną zmienną. Dla przykładu, mamy zmienną $foo i chcemy do niej przypisać strukturę, więc przypisujemy do $foo funkcję assign ($foo = Struct::assign(Nazwa struktury)) i możemy korzystać ze struktury jako $foo->zmienne. Może mój błędny kod:
Kod błędu jest następujący: Parse error: syntax error, unexpected 'public' (T_PUBLIC) in D:\User\Projekty\PHP\core\lib\struct.php on line 39 Dziękuję za pomoc! |
|
|
20.05.2013, 07:41:56
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
-------------------- |
|
|
20.05.2013, 07:44:01
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
Na pierwszy rzut oka widać co robisz źle - nie możesz deklarować własności klasy wewnątrz jej metody.
Jeśli chcesz uzyskać taki efekt to jedyne co mi przychodzi do głowy to użycie tablicy oraz własności __set oraz __get:
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
20.05.2013, 17:14:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 22.08.2012 Ostrzeżenie: (0%) |
Dzięki wielkie! Właśnie tego mi było trzeba
Oczywiście by nie być "żyła", daję pomógł |
|
|
20.05.2013, 20:47:53
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
teraz jestem z deczka "dziabnięty ;p" i nie chce mi się sprawdzać (już jakiś czas nie kodziłem w php), ale o ile pamięć mnie nie myli oba rozwiązania są poprawne, tzn. chciałbym tu zwrócić uwagę na podane rozwiązanie przez @wookieb... domyślnie jak pamiętam takie zmienne są publiczne, więc to co tu próbujecie osiągnąć, oprócz tego powinno to być szybsze... ktoś powie, że minusem tu może być wyzerowanie istniejącej zmiennej publicznej, z kolei drugie rozwiązanie jest z deczka wolniejsze i w tablicy przechowywane są zmienne nie zadeklarowane publicznie w danej klasie (choć to też można potraktować na +)...
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 22:39 |