PHP: Błąd "Parse error, unexpected '<' in Command line code on line n".

Interpreter PHP, poza oczywistą funkcjonalnością dotyczącą wykonywania napisanego przez nas kodu posiada kilka innych ciekawych możliwości. Jedną z nich jest wykonywanie fragmentu kodu przekazanego bezpośrednio jako parametr wywołania. W dzisiejszym wpisie chciałbym pokazać jeden z problemów, na jaki można w tym przypadku natrafić.

PHP: Konstrukcja "or die()".

PHP jest językiem programowania, w którym znajduje się wciąż sporo magii, niezależnie od tego, jak czysty kod chcielibyśmy pisać. Czasem jest to magia wprowadzona przez samych twórców interpretera, czasem jednak jej źródło wypływa z innego niż zwykle wykorzystania prostych mechanizmów języka. W dzisiejszym wpisie chciałbym wyjaśnić działanie jednego z przypadków, z jakim styka się praktycznie każdy początkujący programista PHP, a każdy zaawansowany na pewno kilka razy widział jego wykorzystanie w “profesjonalnie” napisanej aplikacji internetowej.

PHP: Funkcja sprintf() przyjmująca zmienną liczbę argumentów.

Pisząc framework będący tematem pracy inżynierskiej w pewnym momencie musiałem zmierzyć się z problemem wyświetlania i formatowania przyjaznych komunikatów o błędach wykonania. Przyjaznych nie dla użytkownika, lecz dla programisty tworzącego stronę internetową, co trochę utrudniło problem, ponieważ wiadomości w stylu “strona jest chwilowo niedostępna” nie są zbyt informatywne. W dzisiejszym wpisie chciałbym się z Wami podzielić sposobem, w jaki udało mi się ten problem rozwiązać.

PHP: Błąd "Strict Standards: Redefining already defined constructor for class".

Podczas pisania pracy inżynierskiej natknąłem się na kilka ciekawych miejsc w kodzie, “produkujących” nieznane mi do tej pory błędy. Być może miałem świadomość ich istnienia, ale nie udało mi się jeszcze ich “popełnić”. W dzisiejszym wpisie chciałbym przedstawić Wam kolejny problem, tym razem dotyczący pewnych starszych mechanizmów języka PHP. Zapraszam do lektury.

PHP: Błąd "Can't use function return value in write context".

W pracy programisty czasem zdarzają się sytuacje, kiedy pomyłka nie wynika z niewiedzy ani braku doświadczenia osoby piszącej, ale zwykłego zagapienia się i postawienia “innego znaczka” w miejsce tego poprawnego. Tego typu błędy potrafią być bardzo uciążliwe, ponieważ wydaje nam się, że napisaliśmy wszystko poprawnie i bezskutecznie szukamy błędu wpatrując się w kilka linijek, które po prostu “muszą działać”. W dzisiejszym wpisie chciałbym przedstawić problem, który może utrudnić pracę, szczególnie, jeśli jesteśmy już zmęczeni i nie dostrzegamy wszystkich szczegółów na ekranie.

PHP: Deklaracja sygnatury konstruktora klasy w interfejsie.

Konstruktor klasy jest specjalną funkcją uruchamianą automatycznie podczas tworzenia nowej instancji klasy, jednokrotnie w trakcie życia danego obiektu (oczywiście możemy potem w jawny sposób wywołać go w kodzie, jednakże nie jest to polecana praktyka programistyczna). W języku PHP to stwierdzenie także jest prawdziwe, aczkolwiek w wielu miejscach interpreter udowadnia nam, że z powodzeniem możemy potraktować konstruktor jak zwykłą funkcję.

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: Pobieranie ścieżki do pliku klasy pochodnej w metodzie klasy bazowej.

Dzisiejszy wpis jest sponsorowany przez projekt, którego tworzenie obiecałem sobie w momencie, kiedy będę miał gotową całą pracę inżynierską. Ze względu na fakt, że do zrobienia zostały już tylko ostatnie poprawki i przygotowanie do samej obrony, stwierdziłem, że mogę powoli zacząć przygotowywać sobie środowisko pracy. Początki, jak to początki - sprawiają najwięcej problemów, stąd też kolejny wpis problemowy.

PHP: Indeks tablicy może być tylko liczbą całkowitą lub ciągiem znaków.

Dzisiaj znowu sobie ponarzekam na PHP, bo znowu odkryłem pewną bardzo dziwną “funkcjonalność” tego języka. Jak wszyscy wiemy udostępnia nam on konstrukcję array(), dzięki której możemy tworzyć dowolne zbiory danych, znane w programowaniu jako tablice, lub, wśród programistów PHP - jako arraye [wym. “araje” ;]]. Okazuje się, że w tak “dowolnej” konstrukcji, niestety nie wszystko jest “dowolne”, a już na pewno nie typy danych, które mogą być używane jako indeksy.

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”.