PHP: Funkcja extract() i rejestrowanie zmiennych przekazanych do widoku.

Kiedy programuję aplikacje z wykorzystaniem różnego rodzaju frameworków, zawsze zastanawiam się, jak to jest, że ich twórcy potrafią wymyślić rozwiązania, dzięki którym codziennie oszczędzamy cenny czas. Na pewno jest to doświadczenie, na pewno swój wkład ma także talent danego programisty, ale istotną częścią jest także dogłębna znajomość języka programowania, w którym rzeczony framework jest tworzony. W dzisiejszym wpisie chciałbym się z Wami podzielić ciekawym trikiem, jaki pozwala frameworkom na znaczne uproszczenie korzystania z danych przekazanych do widoku.

[PHP] Zmienne zmienne, czyli słów kilka o mechanizmie variable variables.

Języki skryptowe, ze względu na swój charakter [kod, to tylko zwykły tekst, który zaczyna “coś” znaczyć dopiero w momencie interpretacji] mają praktycznie nieograniczone możliwości manipulacji stanem aktualnie przetwarzanego żądania, ze względu na to, że w dowolnym momencie możemy dołożyć żądany kawałek kodu poprzez funkcje typu require_once(). PHP jest jednym z takich języków, stąd nieobce są mu pewne “dziwne” na pierwszy rzut oka funkcjonalności. Być może zastanawiasz się, Czytelniku, czym są wspomniane w tytule “zmienne zmienne” - po lekturze tego artykułu na pewno nie będziesz zawiedziony informacjami wyniesionymi z niniejszego wpisu, więc serdecznie zapraszam do kliknięcia w link “Czytaj dalej”. ;]

Wstęp.

Programując w językach kompilowanych na pewno zauważyłeś, że po przetworzeniu kodu przez kompilator mamy niewielkie możliwości manipulacji strukturą kodu. Mam tu na uwadze szczególnie język C++, w którym raz zapisane funkcje, zmienne, klasy, istnieją przez cały czas działania programu. Dodawanie nowych bytów tego typu jest praktycznie niemożliwe w tradycyjny sposób. Jedyne, co oferują współczesne biblioteki to tzw. refleksja, czyli możliwość analizy struktury kodu i wyciągania informacji o poszczególnych jego elementach.

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

Wstęp.

Jedną z takich “niedyskutowalnych” rzeczy była dla mnie przekazywana od początku informacja o tym, że wynik funkcji / metody to zawsze jedna wartość / zmienna. Nawet brak tej wartości można było uznać za wartość, ponieważ w Pascalu [który był pierwszym językiem programowania jaki poznałem] paradygmat proceduralny był realizowany za pomocą dwóch elementów - procedur [nie zwracających wartości, odpowiednik funkcji zwracających void w C / C++] i funkcji [które “coś” zwracały], także nawet było to podzielone na dwa oddzielne byty.

[C++] "std::string" vs. "const std::string&", czyli o przekazywaniu zmiennych słów kilka.

Samodzielna nauka jest w wielu przypadkach bardzo ciekawym doświadczeniem, z co najmniej dwóch powodów:

  • satysfakcja z udanej eksploracji nieznanych dotąd zasobów wiedzy.
  • możliwość samodzielnego wyboru tempa i zakresu informacji opracowywanych podczas jednej “lekcji”.
Ma jednak jedną podstawową wadę - nikt poza uczniem nie weryfikuje poprawności przetwarzanych danych, a także ich zrozumienia. Dlatego czasem, pomimo tego, że nierzadko w wielu sprawach potencjalny uczeń ma rację, to i tak trzeba go “wyprostować”, wskazać inny, bardziej poprawny, sposób myślenia. Do czego zmierzam? Jak zwykle, chcąc podzielić się z innymi nieco wiedzą, do jednego z moich doświadczeń z przeszłości.