Istnieją dwie interesujące możliwości w tablicach PHP: ruch foreach i ostatni element. Oznacza to, że w kierunku do przodu i do tyłu. Język nadaje każdej zmiennej prawo do zmiany jej typu według własnego uznania, a element tablicy jest również zmienną.
Jeśli weźmiemy pod uwagę, że istnieje wskaźnik do aktywnego elementu w tablicy i można go kontrolować, jak chcesz, to jeśli programista przeoczy, program nie policzy cudów, a jego zachowanie będzie "niezależne".
Tablice zawsze były popularną koncepcją programowania, a ostatnio zyskały nowe znaczenie i formy syntaktyczne. Pętla foreach PHP i pojęcie "ostatniego elementu" są w pewnym sensie równoważne i różnią się tylko kierunkiem ruchu:
W obu przypadkach można tworzyć tablice, jak się okazuje, ale zawsze można zobaczyć wszystko. Oba przypadki otwierają możliwość umieszczenia własnej semantyki w składni PHP.
W pierwszym przypadku cykl oficjalnie przygląda się wszystkim elementom w kolejności ich pojawiania się w tablicy lub kolejności, która rozwinęła się po manipulowaniu z nią. W drugim przypadku proces jest taki sam, ale występuje od końca tablicy do jej początku.
Jeśli wystąpi problem, PHP deklaruje błąd elementu. Jeśli nie tablica jest używana jako parametr, w pierwszym przypadku mamy komunikat PHP: ostrzeżenie niepoprawny argument dostarczony dla foreach, w drugim - błąd poziomu E_WARNING, czyli "nic strasznego, ale problemy przyjdą później".
Pojawienie się tablic asocjacyjnych oznaczało banalną zmianę w stosunku do nich. Jeśli programista nie kontroluje sytuacji, nie można uniknąć problemów.
Wiele zadań lub części algorytmu nakazuje tworzenie uporządkowanych tablic, a następnie klawisze zawsze są uporządkowane.
Kiedy możesz usunąć element, a kolejne klawisze nie poruszają się do przodu, tablica nie różni się zbytnio od tablicy asocjacyjnej. Czy programista nie miał ręki, jak nazwać ten lub ten element tablicy.
Zwykła iteracja elementów w pętli for () jest interesująca i ma sens, gdy klawisze są sekwencyjnie uruchamiane. Każda tablica ma zawsze klucz w kolejności. Kiedy element zostanie usunięty, powstaje pusta przestrzeń i wystąpi błąd w pętli for ().
Podczas przeszukiwania tablicy za pomocą foreach () lub array_pop (), nigdy nie będzie problemów, ale tylko w pierwszym przypadku tablica pozostanie, w drugim zniknie.
Pętla foreach w PHP ma znaną formę. Możesz określić wyszukiwanie w następujący sposób: ($ aPass jako $ cLine) lub możesz określić klucz: ($ aPass jako $ cKey => cLine).
Pętla przez array_pop ($ aPass) - z pola impromptu stosu przeszłości, choć istotna i interesująca w teraźniejszości. To wcale nie jest pętla, ale po prostu wynik ostatniego elementu tablicy, w którym został usunięty z tablicy.
Kiedy rozpoczyna się instrukcja foreach PHP, wewnętrzny wskaźnik tablicy jest zawsze ustawiony na pierwszy element. Zmiana wskaźnika wewnątrz pętli może prowadzić do cudów.
Ważne jest, aby zmienna $ cLine nie wskazywała elementu tablicy $ aPass, ale zawiera jego wartość, więc jeśli chcesz zmienić element tablicy, musisz umieścić znak & przed nim. W takim przypadku $ cLine będzie odniesieniem do elementu tablicy, a nie do jej wartości.
Który błąd jest bardziej wartościowy: śmiertelny lub pomijany jest jak przyprawa, do gustu dewelopera, biorąc pod uwagę odpowiednią reakcję klienta. Jeśli element został usunięty z tablicy, zauważysz tylko pętlę for. Pętla foreach PHP i PHP array_pop są tutaj całkowicie lojalne.
Jeśli element jest niewłaściwego typu, będzie zauważalny tak, jak w głównej części programu.
Jeśli parametr foreach nie zawiera tablicy lub obiektu, pojawi się argument Nieprawidłowy ..., chociaż wariant z array_pop jest zwykle nierealny. Ale gdy wszystko dzieje się tak samo, nic się nie stanie z wyjątkiem NULL.
PHP zapewnia możliwość traktowania obiektów jako tablic. Jaki jest cel tego trudnego do określenia, ale jest to dostępne. Tablice mogą zawierać wartości dowolnego typu i zmieniać je podczas wykonywania programu. Oczywiście elementem tablicy może być inna tablica lub obiekt. Poziom zagnieżdżania jest ograniczony zdrowym rozsądkiem.
Operatory i konstrukcje językowe nie mają nic wspólnego z rekurencją ani poziomem zagnieżdżenia. Jest to poważne opóźnienie w składni struktur kontrolnych ze składni opisu danych. Programiści są przyzwyczajeni do takich zjawisk jak tablice PHP, foreach, array_pop, więc wygodnie jest z nimi pracować.
Perspektywy zmiany struktur kontroli (nawet w odległej przyszłości) nie są jeszcze przewidziane.
Musimy złożyć hołd temu, że pojawienie się pary foreach / array_pop nie trwało długo, ale to tylko połowa historii. Ogólnie rzecz biorąc, dla pętli for () {}, while () {} i do {} while () nadszedł czas, aby właściwie kontrolować puste przestrzenie w macierzach i rozwiązać problem rekursji, gdy element jest tablicą.
Jednak świadomość twórcy wciąż pamięta niewzruszoną doktrynę: tablica to zestaw elementów, gdzie element tablicy jest innym bytem, który musi zostać odpowiednio przetworzony.
Problemu w tym przypadku nie da się rozwiązać w przewidywalnej przyszłości, nawet biorąc pod uwagę tempo wzrostu rozwoju technologii informacyjnej. Dzięki temu trzeba być zadowolonym z tego, co jest.
Najbardziej prymitywny przypadek, gdy elementy tablicy są liczbami, łańcuchami, innymi elementami o stałym składzie i oznaczeniu.
Na przykład cyfry binarnego systemu obliczeń. Podobnie:
Powiedzieć, że najprostszy będzie szereg miesięcy, ale tylko pod pewnymi warunkami, ponieważ w większości przypadków będziesz potrzebował cyfrowej reprezentacji miesiąca, trzyliterowej, rosyjskiej, chińskiej, pełnej lub innej.
Zdecydowanie najprostszym będzie tablica liter alfabetu. W najprostszej tablicy możesz zdefiniować wszystko, co zwykle jest nazywane stałą i niezmiennie dla rozwiązania problemu.
Jeśli zrezygnujesz z innych opcji dla danego elementu, oprócz obiektu i najprostszej tablicy, wszystko okaże się cudowne nawet w rękach nowoczesnych struktur kontrolnych języka, które zachowały swoją esencję od czasów starożytnych.
Wiadomo, że obiekt łączy dane i metody, pamięć i działanie. Ogólna praktyka programowania obiektowego, rozumiana przez wielu, jest abstrakcyjnym obiektem, który nie ma nic, ale wszystko jest tylko zaplanowane.
Wspaniały stan rzeczy, rozwijając łańcuch spadkobierców z abstrakcyjnego obiektu, daje nam możliwość tworzenia tablic tego samego rodzaju danych - obiektów abstrakcyjnych. To, czym dokładnie będą w każdym konkretnym przypadku, jest kwestią techniki i, przenosząc troskę o wdrażanie semantyki w ręce każdego poszczególnego potomka zgodnie z jego istotą, otrzymujemy to, czego chcemy.