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

[JavaScript, PHP] Powrót do poprzedniej strony.

Jakiś czas temu znalazłem u Piotra Sajnoga wpis o WordPressowej wtyczce Comment Redirect, pozwalającej na wyświetlenie po dodaniu przez użytkownika pierwszego komentarza na blogu strony z podziękowaniem [i zachętą do dalszej współpracy ;]]. Zostawiła tam komentarz także Banny, która zdecydowała się przetestować jej [tej wtyczki ;]] działanie także u siebie, gdzie miałem okazję pierwszy raz zetknąć się od strony użytkownika z tytułowym przekierowaniem. Zauważyłem jednak, że po dodaniu komentarza musiałem sam zatroszczyć się o “nawigację wstecz” do wpisu, ponieważ strona nie zawierała ani elementu meta refresh, ani żadnej innej JavaScriptowej metody przeniesienia na poprzednią stronę. Zasugerowałem więc w jednym z komentarzy, żeby umieściła w kodzie tej strony “coś”, co pozwoli na wygodniejsze korzystanie z tej strony. Ze względu na to, że nie zajmuje się ona programowaniem, z miejsca zostałem poproszony o pomoc.

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