Obiekty i referencje w PHP5

Wysłany: 21st Luty 2012 by vonski in OOP, PHP
Tags: , ,
Mówiąc o modelu obiektowym w PHP5 i o głównych jego różnicach względem PHP4, często można spotkać się ze stwierdzeniem, że „obiekty przekazywane są domyślnie przez referencję, nie przez wartość”. Żeby nie być gołosłownym, przytaczam przykład z książki „Linux, Apache, MySQL i PHP. Zaawansowane programowanie” autorstwa m.in. J. Gernera i E.Naramore wydanej w Polsce przez wydawnictwo Helion:

W języku PHP 5 zmienne [odwołujące się do obiektu - przyp. vonski] są domyślnie przekazywane przez referencję.

Na wielu polskojęzycznych stronach traktujących o programowaniu obiektowym w PHP5 spotkałem się z podobną opinią. Prawda jest taka… że nie jest to do końca prawda ;) Czytaj resztę wpisu »

array_walk i array_walk_recursive

Wysłany: 27th Styczeń 2012 by vonski in Notatki do ZCE, PHP, Tablice
Tags: , ,
Obie funkcje służą do iterowania po tablicy, przy czym podczas każdej iteracji wywoływana jest funkcja zdefiniowana przez użytkownika (tzw. funkcja wywołania zwrotnego – z angielskiego callback function) dla każdego elementu. array_walk_recursive różni się od array_walk tym, że, jak sama nazwa wskazuje, funkcja wywołania zwrotnego wykonywana jest rekursywnie dla każdego elementu. Czytaj resztę wpisu »

Tablice jako stosty, kolejki lub zbiory #2

Wysłany: 22nd Styczeń 2012 by vonski in Notatki do ZCE, PHP, Tablice
Tags: , ,
We wcześniejszym wpisie skupiłem się na zastosowaniu tablic do odwzorowania stosów i kolejek. Do tego opisałem już wstępnie za pomocą jakich funkcji możemy ułatwić sobie życie traktując tablice jako zbiory. Przede wszystkim jest to funkcja array_diff oraz wszystkie jej pochodne. W tym wpisie chciałbym skupić się na kolejnej funkcji, mianowicie na array_intersect wyznaczającą nam część wspólną dwóch, lub więcej zbiorów. Czytaj resztę wpisu »

Tablice jako stosy, kolejki lub zbiory #1

Wysłany: 21st Styczeń 2012 by vonski in Notatki do ZCE, Tablice
Tags: , ,
Tablice często używane są jako stosy (LIFO – Last In First Out) lub kolejki (FIFO – First In First Out). PHP bardzo upraszcza nam to podejście do tablic dostarczając zestawu funkcji wyciągania i wkładania poszczególnych elementów ze stosów / kolejek. Do tego czasem zachodzi potrzeba potraktować tablice jako zbiory danych. Tutaj też twórcy języka usprawniają nam pracę dostarczając odpowiednich metod. Czytaj resztę wpisu »

Konstrukcje językowe

Wysłany: 8th Styczeń 2011 by vonski in Notatki do ZCE, PHP, Podstawy
Tags: ,
Konstrukcje językowe są elementami wbudowanymi w język, dlatego też kierują się specjalnymi regułami. Najbardziej znaną konstrukcją jest prawdopodobnie echo, służące do wypisywania tekstu na ekran. Należy sobie zdać sprawę, że echo nie jest funkcją, dlatego nie zwraca żadnej wartości. Alternatywnie można skorzystać z print, która, mimo tego że jest również konstrukcją językową, to posiada pewne cechy funkcji – zwraca wartość oraz może być użyta jako część wyrażenia. Czytaj resztę wpisu »

Anty-sort, czyli robienie bałaganu w tablicy

Wysłany: 3rd Styczeń 2011 by vonski in Notatki do ZCE, PHP, Tablice
Tags: , ,
Niedawno w Notatkach spisałem się na temat sortowania tablic. Są jednak takie sytuacje, w których potrzebujemy troszkę namieszać w tablicy – czyli wykonać dokładnie odwrotność sortowania. Jak zwykle PHP spieszy z pomocą dostarczając nam gotowej funkcji realizującej to zadanie. Funkcja ta zwie się shuffle(). Czytaj resztę wpisu »

Sortowanie tablic

Wysłany: 2nd Styczeń 2011 by vonski in Notatki do ZCE, PHP, Tablice
Tags: , ,
PHP wyposaża nas w sumie w dwanaście funkcji, których zadaniem jest sortowanie tablic na przeróżne sposoby. Funkcje te to: sort(), asort(), rsort(), arsort(), ksort(), krsort(), natsort(), natcasesort(), usort(), uasort(), uksort() oraz array_multisort(). Czytaj resztę wpisu »

Zabawy ze wskaźnikiem tablicowym

Wysłany: 29th Grudzień 2010 by vonski in Notatki do ZCE, PHP, Tablice
Tags: , ,
Każda tablica posiada swój wewnętrzny wskaźnik, który, jak nietrudno się domyślić, wskazuje na „bieżący” element będący obiektem aktualnej iteracji. PHP wyposaża programistę w szereg funkcji pozwalających sprawnie operować tymże wskaźnikiem. Są to: reset(), current(), end(), prev(), next(), key() oraz each(). Do tego dochodzi jeszcze specjalny rodzaj pętli, ułatwiający iterowanie po tablicach: foreach(). Czytaj resztę wpisu »

array_flip() i array_reverse()

Wysłany: 29th Grudzień 2010 by vonski in Notatki do ZCE, PHP, Tablice
Tags: , ,
Nazwy tych funkcji są bardzo podobne znaczeniowo i dużo osób myli jedną z drugą. Prawda jest taka, że w praktyce funkcje te robią dwie różne rzeczy. Czytaj resztę wpisu »

Tablice – wprowadzenie

Wysłany: 20th Grudzień 2010 by vonski in Notatki do ZCE, PHP, Tablice
Tablice są bez wątpienia największą siłą PHP. Dzięki dziesiątkom wbudowanych funkcji operacje na nich stają się bardzo proste a czas ich implementacji jest maksymalnie skrócony. Tablice są bardzo elastyczną strukturą danych. PHP dopuszcza tworzenie tablic numerycznych, asocjacyjnych, lub, co więcej, mieszanych – jedna tablica może zawierać zarówno klucze asocjacyjne jak i numeryczne. Na tym nie koniec ich elastyczności – tablice pozawalają na przechowywanie różnych typów danych, tzn. w jednej tablicy możesz umieścić jednocześnie np. inną tablicę i obiekt, bądź liczbę całkowitą – cokolwiek. Czytaj resztę wpisu »