![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że mamy wielowymiarową tablicę, której struktury do końca nie znamy. Korzysta z niej kilka innych obiektów, mogą one wstawiać do tej tablicy wartości pod odpowiednimi indeksami, ale i też je wyciągać (zakładamy, że nigdy nikt sobie na wzajem danych nie nadpisze). Ale ta tablica ma być "zarządzalna" przez osobny obiekt. To znaczy, by pobrać jakąś wartość trzeba użyć metody $object->get('index'), a żeby wstawić $object->set('index', 2). Nigdy nie ma bezpośredniego dostępu do tej tablicy.
Jak wykonać metody pobierania i wstawiania do tablicy, by były możliwie jak najszybsze (operacje na stringach to jakaś masakra w PHP ;/) i żeby można było dostać się do tablicy wgłąb, na przykład: $table['index1']['index2']['index3']? Wymyśliłem, by na poczekaniu tworzyć funkcję anonimową (create_function), której prześlemy całą tablicę, a w stringu stworzymy już indeks do pobrania:
I teraz, jeśli chcemy pozyskać jakąś wartość to w parametrze metody podajemy ciąg znaków: 'index1.index2.index3'. Ale nie jest to zbyt szybkie. Macie może inne pomysły na rozwiązanie tego problemu? Ten post edytował adbacz 9.07.2014, 23:26:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Pytanie tylko kto zapisuje w pliku błędy typu notice. (IMG:style_emoticons/default/smile.gif) Ja uwielbiam tego typu dyskusje, można poznać różne punkty widzenia. Nie jestem fanatykiem ani jednego, ani drugiego wyjścia. Złotym środkiem może się okazać używanie klasy typu Collection, które mogą oferować wiele przydatnych funkcji nieobecnych domyślnie dla tablic. Tak sobie pomyślałem, że takie skomplikowane i nieobliczalne struktury to już może być trochę za dużo dla tablicy.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:57 |