PHP: Warunkowe definiowanie funkcji.

Nie wiem już ile razy zachwycałem się na moim blogu możliwościami języków skryptowych, a najbardziej tymi, które możemy znaleźć w PHP. Dawno, dawno temu, kiedy jeszcze moja wiedza na temat tego języka była “cokolwiek nikła” zauważyłem w czytanym kodzie pewne ciekawe rozwiązanie. O ile na pierwszy rzut oka było ono zrozumiałe, o tyle wychodząc z praktyką wyniesioną z języków takich, jak Pascal / Delphi, czy C / C++ stwierdziłem, że to nie może być możliwe. Kiedy okazało się, że jednak może - ciężko było mi pozbierać myśli.

PHP: Zwracanie wartości z pliku.

Rozwój języka PHP był, a właściwie cały czas jest, dosyć ciekawym “procesem technologicznym”, w trakcie którego powstało wiele funkcjonalności, o których statystyczny programista tego języka praktycznie nie wie. Nie są to aż tak kluczowe dla naszej pracy rzeczy, aczkolwiek czasem mogą pomóc w zaprojektowaniu bardzo interesujących rozwiązań, niemożliwych do realizacji w innych językach programowania. W dzisiejszym wpisie chciałbym przedstawić jedną z takich możliwości - zwracanie wartości z… pliku.

PHP: Obsługa wartości typu DWORD.

W komentarzu do wpisu o flagach bitowych zostałem poproszony przez jednego z komentujących, Bartosza Wójcika, o opisanie obsługi wartości typu DWORD w PHP. Wychodząc naprzeciw tej prośbie, rozbiłem temat na pewnego rodzaju wprowadzenie we wpisie o odczytywaniu wartości bajtów w zmiennych liczbowych, a dzisiaj podejmuję temat właściwy. Zapraszam do lektury, a także zgłaszania własnych pomysłów na tematy wpisów, o których chcielibyście przeczytać. Żadne zgłoszenie nie zostanie przeze mnie pozostawione bez echa. ;]

PHP: Dynamiczne tworzenie zmiennych na podstawie indeksów tablicy.

Podczas pisania kodu czasami natrafiamy na sytuację, gdzie potrzebne informacje znajdują się w mało wygodnym dla nas kontenerze. O ile tablice w języku PHP są jednym z najprostszych w wykorzystaniu kontenerów, jakie do tej pory widziałem, ciągłe wykorzystywanie konstrukcji $arr[‘sth’] potrafi zmęczyć nawet bardzo wytrwałego programistę. W dzisiejszym wpisie chciałbym przedstawić dwie techniki pozwalające na uniknięcie tego typu utrudnień.

PHP: Sprawdzanie, czy plik został włączony do kodu.

Ci, którzy śledzą stronę niniejszego blogu na Facebooku, na pewno zauważyli status, jakim się z nimi podzieliłem w środę. Strasznie się wtedy zdenerwowałem, bo straciłem kilka godzin życia, a popełniony błąd był trywialny. Podczas analizy działania zwyczajnie skupiłem się na bardziej zaawansowanych częściach kodu, zapominając o podstawach, co odbiło się niestety na procesie “debugowania”. Skoro powstał problem, to na pewno istnieje dla niego rozwiązanie, dlatego w niniejszym wpisie chciałbym przedstawić Wam sposób na zabezpieczenie się przed tym “błędem”.

[PHP] Zwracanie wielu wartości z funkcji.

Zaczynając przygodę z programowaniem każdy z nas otrzymał od swoich mentorów kilka informacji, które należało przyjąć za podstawę i z jako takimi aksjomatami po prostu nie dyskutować. Z reguły na początku kariery nikogo nie zastanawiają ani nie denerwują takie ograniczenia, stąd trwamy w naszym przeświadczeniu, że to, co robimy jest zgodne z jak najlepszymi technikami programowania. W dzisiejszym wpisie chciałbym nieco nagiąć jedną z tych reguł i pokazać Wam pewną sztuczkę czasem istotnie ułatwiającą życie, szczególnie podczas tworzenia kodu w języku PHP.

[(My)SQL] Sortowanie wyników według własnej listy wartości.

Język SQL kryje w sobie wiele różnych tajemnic, których znajomość może bardzo ułatwić życie programisty. Nawet podczas korzystania z jego zwykłych - “nieprogramowalnych” elementów, takich jak podstawowe zapytania CRUD [mówiąc “programowalne”, mam na myśli wszelkiego rodzaju procedury składowane i im podobne] możemy dowiedzieć się o wielu sztuczkach, które potrafią przeobrazić zwracane wyniki w gotowy zestaw danych gotowy do użycia. Mając w pamięci jeden z moich niedawnych wpisów o zwracaniu numeru rekordu, dzisiaj także chciałbym przedstawić Wam jedną z takich sztuczek.

[PHP] Funkcje / metody o zmiennej liczbie parametrów.

Języki skryptowe mają to do siebie, że dzięki wprowadzonej abstrakcji interpretera możliwa jest o wiele szersza ingerencja w sposób działania już uruchomionego skryptu. PHP jest jednym z takich języków, stąd czasem potrafi zadziwić swoimi możliwościami, dając nam narzędzia zarówno bardzo pomocne jak i proste w użyciu. W niniejszym wpisie chciałbym Wam przedstawić jedno takie narzędzie - funkcje o zmiennej liczbie parametrów.

[PHP] Wstawianie wywołań funkcji w bloku HEREDOC.

Zazwyczaj podczas tworzenia klas implementuję w nich własne metody “podsumowujące” aktualny stan obiektu. W zdecydowanej większości przypadków to, co sam stworzę jest o wiele wygodniejsze w czytaniu niż np. wynik funkcji var_dump(). ;] Do tej pory podczas tworzenia takich metod korzystałem wyłącznie z konstrukcji echo i jej podobnych, jednak tym razem zdecydowałem się na ułatwienie sobie pracy i wykorzystanie składni HEREDOC, o której wcześniej tylko czytałem, a nie miałem okazji sprawdzić jej faktycznej przydatności.

[C++] Klasy zaprzyjaźnione: "co je twoje, to je moje, a co moje, to nie rusz".

Dzisiaj czytałem nieco o klasach zaprzyjaźnionych w języku C++ [ang. friend classes] i podczas lektury jednego z artykułów przypomniało mi się znane z podstawówki powiedzenie “co je twoje, to je moje, a co moje, to nie rusz”. Przez chwilę patrzyłem na przykładowy kod i nagle wpadł mi do głowy pewien pomysł. Wymyśliłem implementację tego powiedzenia w C++. ;] Oznaczenie klasy jako zaprzyjaźnionej z inną oznacza m. in. to, że wszystkie atrybuty tej pierwszej, niezależnie od klasyfikatora dostępu [public, protected, private] stają się dostępne dla drugiej bez żadnych ograniczeń. Pierwsza klasa “przekazuje” wszystkie informacje o sobie tej drugiej tak, jakby kwalifikatorem dostępu dla wszystkich jej elementów [atrybutów i metod] było słowo kluczowe public. Analogia jest, przynajmniej dla mnie, bardzo wyraźna. ;]