100 najpopularniejszych pytań i odpowiedzi do rozmów kwalifikacyjnych w języku PHP (PDF)

Oto pytania i odpowiedzi dotyczące rozmów kwalifikacyjnych w języku PHP, zarówno dla świeżych, jak i doświadczonych kandydatów, którzy chcą zdobyć wymarzoną pracę.

 

Pytania do rozmowy kwalifikacyjnej PHP dla nowicjuszy


1) Co to jest PHP?

PHP to język sieciowy oparty na skryptach, które umożliwiają programistom dynamiczne tworzenie generowanych stron internetowych.


2) Co oznaczają inicjały PHP?

PHP oznacza preprocesor hipertekstu.

👉 Bezpłatne pobieranie pliku PDF: pytania i odpowiedzi dotyczące rozmów kwalifikacyjnych PHP


3) Jaki język programowania przypomina PHP?

Składnia PHP przypomina Perla i C


4) Co oznacza PEAR?

PEAR oznacza „Repozytorium rozszerzeń i aplikacji PHP”. Rozszerza PHP i zapewnia wyższy poziom programowania dla twórców stron internetowych.


5) Jaka jest faktycznie używana wersja PHP?

Wersja 7.1 lub 7.2 jest zalecaną wersją PHP.


6) Jak wykonać skrypt PHP z wiersza poleceń?

Wystarczy użyć interfejsu wiersza poleceń PHP (CLI) i określić nazwę pliku skryptu, który ma zostać wykonany, w następujący sposób:
php script.php


7) Jak uruchomić interaktywną powłokę PHP z poziomu wiersza poleceń?

Po prostu użyj programu PHP CLI z opcją -a w następujący sposób:
php -a


8) Jaki jest poprawny i najpopularniejszy sposób rozpoczynania i kończenia bloku kodu PHP?

Dwa najczęstsze sposoby rozpoczynania i kończenia skryptu PHP to:

 <?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>

9) Jak możemy wyświetlić wynik bezpośrednio w przeglądarce?

Aby móc wyświetlić wynik bezpośrednio w przeglądarce, musimy użyć specjalnych tagów .


10) Jaka jest główna różnica pomiędzy PHP 4 i PHP 5?

PHP 5 oferuje wiele dodatkowych OOP (Programowanie obiektowe) funkcje.


11) Czy w PHP obsługiwane jest dziedziczenie wielokrotne?

PHP obsługuje tylko pojedyncze dziedziczenie; oznacza to, że klasę można rozszerzyć tylko z jednej klasy za pomocą słowa kluczowego „rozszerzony”.


12) Jakie jest znaczenie końcowej klasy i ostatecznej metody?

„final” został wprowadzony w PHP5. Klasa końcowa oznacza, że ​​tej klasy nie można rozszerzyć i nie można zastąpić metody końcowej.


13) Jak odbywa się porównywanie obiektów w PHP?

Używamy operatora '==', aby sprawdzić, czy dwa obiekty są instancjami tej samej klasy i mają te same atrybuty i równe wartości. Możemy sprawdzić, czy dwa obiekty odnoszą się do tej samej instancji tej samej klasy, używając operatora tożsamości '==='.


14) Jak PHP i HTML mogą współdziałać?

Możliwe jest generowanie HTML za pomocą skryptów PHP i możliwe jest przekazywanie fragmentów informacji z HTML do PHP.


15) Jakiego typu operacja jest potrzebna przy przekazywaniu wartości poprzez formularz lub adres URL?

Jeśli chcielibyśmy przekazać wartości przez formularz lub adres URL, musimy je zakodować i zdekodować za pomocą funkcji htmlspecialchars() i urlencode().


16) W jaki sposób PHP i Javascript antrakt?

PHP i Javascript nie może bezpośrednio wchodzić w interakcję, ponieważ PHP jest językiem po stronie serwera i Javascript jest językiem po stronie klienta. Możemy jednak wymieniać zmienne, ponieważ PHP może generować Javascript kod do wykonania przez przeglądarkę i możliwe jest przekazywanie określonych zmiennych z powrotem do PHP poprzez adres URL.


17) Co jest potrzebne, aby móc korzystać z funkcji obrazu?

Do wykonywania funkcji obrazowych potrzebna jest biblioteka GD.


18) Jakie jest zastosowanie funkcji „imagetypes()”?

imagetypes() podaje format i typy obrazów obsługiwane przez aktualną wersję GD-PHP.


19) Jakich funkcji należy użyć, aby uzyskać właściwości obrazu (rozmiar, szerokość i wysokość)?

funkcje są getimagesize() dla rozmiaru, imagesx() dla szerokości i imagesy() dla wzrostu.


20) Jak radzą sobie z błędami wykonania za pomocą funkcji include() i require()?

Jeśli funkcja require() nie może uzyskać dostępu do pliku, kończy się to błędem krytycznym. Jednakże include() funkcja wyświetla ostrzeżenie, a skrypt PHP kontynuuje wykonywanie.


21) Jaka jest główna różnica między require() a require_once()?

require(), require_once() wykonaj to samo zadanie, z tą różnicą, że druga funkcja sprawdza, czy skrypt PHP jest już dołączony, czy nie, przed jego wykonaniem.

(to samo dla include_once() i include())


22) Jak wyświetlić tekst za pomocą skryptu PHP?

Możliwe są dwie metody:

<!--?php echo "Method 1"; print "Method 2"; ?-->

23) W jaki sposób możemy wyświetlić informacje o zmiennej w sposób możliwy do odczytania przez człowieka za pomocą PHP?

Aby móc wyświetlić wynik czytelny dla człowieka, używamy print_r().


24) Jak można ustawić nieskończony czas wykonywania skryptu PHP?

Funkcja set_time_limit(0) dodana na początku skryptu ustawia nieskończony czas wykonania, aby nie spowodować przekroczenia błędu PHP „maksymalny czas wykonania”. Można to również określić w pliku php.ini.


Pytania i odpowiedzi do rozmowy kwalifikacyjnej PHP dla doświadczonych

25) Co oznacza błąd PHP „Błąd analizy w PHP – nieoczekiwana zmienna T w linii x”?

Jest to błąd składni PHP wyrażający, że błąd w linii x powoduje zatrzymanie analizowania i wykonywania programu.


26) Co powinniśmy zrobić, aby móc eksportować dane do pliku Excel?

Najbardziej powszechnym i stosowanym sposobem jest uzyskanie danych w formacie obsługiwanym przez Excel. Można np. zapisać plik .csv, wybrać np. przecinek jako separator pomiędzy polami, a następnie otworzyć plik w programie Excel.


27) Do czego przydatna jest funkcja file_get_contents()?

file_get_contents() pozwala odczytać plik i zapisać go w zmiennej łańcuchowej.


28) Jak możemy połączyć się z a MySQL baza danych ze skryptu PHP?

Aby móc połączyć się z MySQL bazy danych, musimy użyć funkcji mysqli_connect() w następujący sposób:

<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->

29) Do czego przydaje się funkcja mysql_pconnect()?

mysql_pconnect() zapewnić trwałe połączenie z bazą danych, oznacza to, że połączenie nie zostanie zamknięte po zakończeniu działania skryptu PHP.

Ta funkcja nie jest obsługiwana w PHP 7.0 i nowszych wersjach


30) W jaki sposób wyniki MySQL są obsługiwane w PHP?

Zestaw wyników można obsłużyć przy użyciu mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object lub mysqli_fetch_row.


31) Jak można poznać liczbę wierszy zwróconych w zestawie wyników?

Funkcja mysqli_num_rows() zwraca liczbę wierszy w zestawie wyników.


32) Która funkcja podaje liczbę wpisów, których dotyczy zapytanie?

mysqli_affected_rows() zwraca liczbę wpisów, na które wpływa zapytanie SQL.


33) Jaka jest różnica między mysqli_fetch_object() i mysqli_fetch_array()?

mysqli_fetch_object() Funkcja zbiera pierwszy pojedynczy pasujący rekord gdzie mysqli_fetch_array() zbiera wszystkie pasujące rekordy z tabeli w tablicy.


34) Jak możemy uzyskać dostęp do danych przesyłanych poprzez adres URL metodą GET?

Aby uzyskać dostęp do danych przesłanych metodą GET, używamy tablicy $_GET w następujący sposób:

www.url.com?var=value
$variable = $_GET["var"]; this will now contain 'value'

35) Jak możemy uzyskać dostęp do danych przesyłanych poprzez adres URL metodą POST?

Aby uzyskać dostęp do przesłanych w ten sposób danych, użyj tablicy $_POST.

Wyobraź sobie, że masz w formularzu pole o nazwie „var”, gdy użytkownik kliknie „Prześlij do formularza pocztowego”. Możesz wtedy uzyskać dostęp do wartości w następujący sposób:

$_POST["var"];

36) Jak sprawdzić, czy wartość danej zmiennej jest liczbą?

Aby sprawdzić, czy jest to liczba, czy nie, można skorzystać z dedykowanej funkcji is_numeric().


37) Jak sprawdzić czy wartość danej zmiennej jest alfanumeryczna?

Można skorzystać z dedykowanej funkcji ctype_alnum, aby sprawdzić, czy jest to wartość alfanumeryczna, czy nie.


38) Jak sprawdzić, czy dana zmienna jest pusta?

Jeżeli chcemy sprawdzić czy zmienna ma wartość czy nie, można skorzystać z funkcji pusty().


39) Co oznacza funkcja unlink()?

Funkcja unlink() przeznaczona jest do obsługi systemu plików. Po prostu usuwa plik podany jako wpis.


40) Co oznacza funkcja unset()?

Do zarządzania zmiennymi przeznaczona jest funkcja unset(). Spowoduje to, że zmienna będzie niezdefiniowana.


41) Jak uciec od danych przed zapisaniem ich w bazie danych?

Funkcja addlashes umożliwia nam ucieczkę danych przed zapisaniem ich w bazie danych.


42) Jak można usunąć znaki ucieczki z ciągu znaków?

Funkcja stripslashes umożliwia nam usunięcie znaków ucieczki przed apostrofami w pliku a ciąg.


43) Jak możemy automatycznie uniknąć przychodzących danych?

Musimy włączyć wpis Magic quotes w pliku konfiguracyjnym PHP.


44) Co oznacza funkcja get_magic_quotes_gpc()?

Funkcja get_magic_quotes_gpc() informuje nas, czy magiczne cudzysłowy są włączone, czy nie.


45) Czy można usunąć znaczniki HTML z danych?

Funkcja strip_tags() pozwala nam wyczyścić ciąg znaków ze znaczników HTML.


46) Do czego przydaje się zmienna statyczna w funkcji?

Zmienna statyczna jest definiowana w funkcji tylko za pierwszym razem, a jej wartość można modyfikować podczas wywołań funkcji w następujący sposób:

<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction();        //1 testFunction();        //2 testFunction();        //3 ?-->

47) Jak zdefiniować zmienną dostępną w funkcjach skryptu PHP?

Ta funkcja jest możliwa przy użyciu słowa kluczowego global.


48) Jak można zwrócić wartość z funkcji?

Funkcja zwraca wartość za pomocą instrukcji 'return $value;'.


49) Jaka jest najwygodniejsza metoda mieszania haseł?

Lepiej jest używać crypt(), który natywnie obsługuje kilka algorytmów haszujących lub funkcji hash(), która obsługuje więcej wariantów niż crypt(), niż używać powszechnych algorytmów haszujących, takich jak md5, sha1 lub sha256, ponieważ są one pomyślane jako szybkie. Dlatego hashowanie haseł za pomocą tych algorytmów może tworzyć podatność.


50) Które rozszerzenia kryptograficzne umożliwiają generowanie i weryfikację podpisów cyfrowych?

PHP-OpenSSL rozszerzenie umożliwia wykonywanie szeregu operacji kryptograficznych, w tym generowanie i weryfikację podpisów cyfrowych.


Pytania do rozmowy kwalifikacyjnej PHP dotyczące 5 lat doświadczenia

51) Jak zdefiniowana jest stała w skrypcie PHP?

Dyrektywa zdefiniować() pozwala nam zdefiniować stałą w następujący sposób:

define ("ACONSTANT", 123);

52) Jak przekazać zmienną przez referencję?

Aby móc przekazać zmienną przez referencję, przed nią używamy znaku ampersand, w następujący sposób: $var1 = &$var2


53) Czy porównanie liczby całkowitej 12 i ciągu znaków „13” będzie działać w PHP?

Liczby „13” i 12 można porównać w PHP, ponieważ rzutuje ono wszystko na typ całkowity.


54) Jak można rzutować typy w PHP?

Nazwę typu wyjściowego należy podać w nawiasie przed zmienną, która ma zostać rzutowana w następujący sposób:

* (int), (integer) – rzutowanie na liczbę całkowitą

* (bool), (boolean) – rzutowanie na wartość logiczną

* (float), (double), (rzeczywisty) – rzutowany na float

* (string) – rzutowanie na ciąg

* (tablica) – rzutowanie na tablicę

* (obiekt) – rzut na obiekt


55) Kiedy instrukcja warunkowa kończy się endif?

Kiedy po oryginalnym if następuje: a następnie blok kodu bez nawiasów klamrowych.


56) Jak w PHP wykorzystuje się operator warunkowy trójargumentowy?

Składa się z trzech wyrażeń: warunku i dwóch operandów opisujących, jaka instrukcja powinna zostać wykonana, gdy określony warunek jest prawdziwy lub fałszywy, w następujący sposób:

Expression_1?Expression_2 : Expression_3;

57) Do czego służy funkcja func_num_args()?

Funkcja func_num_args() służy do podawania liczby parametrów przekazywanych do funkcji.


58) Jeśli zmienna $var1 jest ustawiona na 10, a $var2 jest ustawiona na znak var1, jaka jest wartość $$var2?

$$var2 zawiera wartość 10.


59) Co oznacza dostęp do klasy poprzez ::?

:: służy do uzyskiwania dostępu do metod statycznych, które nie wymagają inicjalizacji obiektu.


60) W PHP obiekty są przekazywane przez wartość czy przez referencję?

W PHP obiekty przekazywane są przez referencje.


61) Czy konstruktory nadrzędne są wywoływane niejawnie wewnątrz konstruktora klasy?

Nie, konstruktor nadrzędny musi zostać wywołany jawnie w następujący sposób:

parent::constructor($value)

62) Jaka jest różnica pomiędzy __senem a __pobudką?

__sleep zwraca tablicę wszystkich zmiennych, które należy zapisać, podczas gdy __wakeup je pobiera.


63) Co jest szybsze?

1- Łączenie dwóch zmiennych w następujący sposób:

$variable1 = 'Hello ';

$variable2 = 'World';

$variable3 = $variable1.$variable2;

Or

2- $variable3 = "$variable1$variable2";

$zmienna3 będzie zawierać „Hello World”. Pierwszy kod jest szybszy niż drugi kod, szczególnie w przypadku dużych i dużych zestawów danych.


64) jaka jest definicja sesji?

Sesja to obiekt logiczny umożliwiający nam zachowanie tymczasowych danych na wielu stronach PHP.


65) Jak rozpocząć sesję w PHP?

Użycie funkcji session_start() pozwala nam na aktywację sesji.


66) Jak można propagować identyfikator sesji?

Identyfikator sesji można propagować za pomocą plików cookie lub parametrów adresu URL.


67) Jakie jest znaczenie trwałego pliku cookie?

Trwały plik cookie jest trwale przechowywany w pliku cookie na komputerze przeglądarki. Domyślnie pliki cookie są tymczasowe i zostaną usunięte, jeśli zamkniemy przeglądarkę.


68) Kiedy kończą się sesje?

Sesje kończą się automatycznie po zakończeniu wykonywania skryptu PHP, ale można je zakończyć ręcznie za pomocą session_write_close().


69) Jaka jest różnica między session_unregister() a session_unset()?

Funkcja session_unregister() wyrejestrowuje zmienną globalną z bieżącej sesji, a funkcja session_unset() zwalnia wszystkie zmienne sesji.


70) Co oznacza $GLOBALS?

$GLOBALS to tablica asocjacyjna zawierająca odniesienia do wszystkich zmiennych, które są aktualnie zdefiniowane w zasięgu globalnym skryptu.


Pytania do rozmowy kwalifikacyjnej PHP dotyczące 10 lat doświadczenia

71) Co oznacza $_SERVER?

$_SERVER to tablica zawierająca informacje utworzone przez serwer WWW, takie jak ścieżki, nagłówki i lokalizacje skryptów.


72) Co oznacza $_FILES?

$_FILES to tablica asocjacyjna złożona z elementów wysyłanych do bieżącego skryptu metodą HTTP POST.


73) Jaka jest różnica pomiędzy $_FILES['userfile']['name'] a $_FILES['userfile']['tmp_name']?

$_FILES['userfile']['name'] reprezentuje oryginalną nazwę pliku na komputerze klienckim,

$_FILES['userfile']['tmp_name'] reprezentuje tymczasową nazwę pliku przechowywanego na serwerze.


74) Jak możemy uzyskać błąd w przypadku problemu z przesłaniem pliku?

$_FILES['userfile']['error'] zawiera kod błędu powiązany z przesłanym plikiem.


75) Jak możemy zmienić maksymalny rozmiar przesyłanych plików?

Możemy zmienić maksymalny rozmiar przesyłanych plików, zmieniając upload_max_filesize w php.ini.


76) Co oznacza $_ENV?

$_ENV to tablica asocjacyjna zmiennych wysyłana do bieżącego skryptu PHP za pomocą metody środowiskowej.


77) Co oznacza $_COOKIE?

$_COOKIE to tablica asocjacyjna zmiennych wysyłana do bieżącego skryptu PHP przy użyciu plików cookie HTTP.


78) Co oznacza zakres zmiennych?

Zakres zmiennej to kontekst, w którym jest ona zdefiniowana. W przeważającej części wszystkie zmienne PHP mają tylko jeden zakres. Ten pojedynczy zakres obejmuje również pliki uwzględnione i wymagane.


79) Jaka jest różnica między operatorem „BITWISE AND” a operatorem „LOGICAL AND”?

$a i $b: PRAWDA, jeśli zarówno $a, jak i $b są PRAWDA.

$a i $b: Ustawione są bity ustawione zarówno w $a, jak i $b.


80) Jakie są dwa główne operatory łańcuchowe?

Pierwszym jest operator konkatenacji ('.'), który zwraca konkatenację swoich prawych i lewych argumentów. Drugim jest ('.='), który dodaje argument po prawej do argumentu po lewej.


81) Co oznacza operator tablicowy '==='?

$a === $b PRAWDA, jeśli $a i $b mają te same pary klucz/wartość, w tej samej kolejności i tego samego typu.


82) Jaka jest różnica pomiędzy $a != $b i $a !== $b?

!= oznacza nierówność (PRAWDA, jeśli $a nie jest równe $b), a !== oznacza nietożsamość (PRAWDA, jeśli $a nie jest identyczne z $b).


83) Jak możemy ustalić, czy zmienna PHP jest obiektem instancji określonej klasy?

Aby móc sprawdzić, czy zmienna PHP jest obiektem instancji określonej klasy, używamy instancji.


84) Do czego przydatna jest instrukcja goto?

Polecenie goto można umieścić w celu włączenia skokuping wewnątrz programu PHP. Cel jest wskazywany przez etykietę, po której następuje dwukropek, a instrukcja jest określona jako polecenie goto, po którym następuje pożądana etykieta docelowa.


85) jaka jest różnica między wyjątkiem::getMessage i wyjątkiem:: getLine?

Wyjątek::getMessage pozwala nam uzyskać komunikat o wyjątku, a wyjątek::getLine pozwala nam uzyskać linię, w której wystąpił wyjątek.


86) Co oznacza wyrażenie Wyjątek::__toString?

Wyjątek::__toString podaje ciąg znaków reprezentujący wyjątek.


87) Jak można przeanalizować plik konfiguracyjny?

Funkcja parse_ini_file() umożliwia załadowanie pliku ini określonego w nazwie pliku i zwraca zawarte w nim ustawienia w tablicy asocjacyjnej.


88) Jak możemy ustalić, czy zmienna jest ustawiona?

Funkcja logiczna isset określa, czy zmienna jest ustawiona i nie ma wartości NULL.


89) Jaka jest różnica pomiędzy funkcjami strstr() i stristr()?

Funkcja łańcuchowa strstr(string allString, string occ) zwraca część allString od pierwszego wystąpienia occ do końca allString. W tej funkcji rozróżniana jest wielkość liter. stristr() jest identyczna z strstr() z tą różnicą, że wielkość liter nie jest rozróżniana.


90) Jaka jest różnica między for i foreach?

for wyraża się w następujący sposób:

for (wyrażenie1; wyrażenie2; wyrażenie3)

oświadczenie

Pierwsze wyrażenie jest wykonywane raz na początku. W każdej iteracji obliczane jest wyrażenie2. Jeśli ma wartość PRAWDA, pętla jest kontynuowana i wykonywane są instrukcje znajdujące się wewnątrz for. Jeśli ma wartość FALSE, wykonywanie pętli kończy się. wyrażenie3 jest testowane na końcu każdej iteracji.

Jednak foreach zapewnia łatwy sposób iteracji po tablicach i jest używany tylko z tablicami i obiektami.


91) Czy można przesłać formularz za pomocą dedykowanego przycisku?

Możliwe jest użycie document.form.submit() funkcję wysłania formularza. Na przykład: <input type=button value="SUBMIT" onClick="document.form.submit()">


92) Jaka jest różnica między ereg_replace() i eregi_replace()?

Funkcja eregi_replace() jest identyczna z funkcją ereg_replace() z tą różnicą, że ignoruje rozróżnienie wielkości liter podczas dopasowywania znaków alfabetu.


93) Czy można chronić znaki specjalne w ciągu zapytania?

Tak, używamy funkcji urlencode(), aby móc chronić znaki specjalne.


94) Jakie są trzy klasy błędów, które mogą wystąpić w PHP?

Trzy podstawowe klasy błędów to powiadomienia (niekrytyczne), ostrzeżenia (błędy poważne) i błędy krytyczne (błędy krytyczne).


95) Jaka jest różnica między znakami \034 i \x34?

\034 to liczba ósemkowa 34, a \x34 to liczba szesnastkowa 34.


96) Jak możemy przekazać zmienną podczas nawigacji pomiędzy stronami?

Możliwe jest przekazywanie zmiennych pomiędzy stronami PHP za pomocą sesji, plików cookie lub ukrytych pól formularzy.


97) Czy można wydłużyć czas wykonania skryptu PHP?

Użycie set_time_limit(int sekund) pozwala nam wydłużyć czas wykonania skryptu PHP. Domyślny limit to 30 sekund.


98) Czy można zniszczyć plik cookie?

Tak, jest to możliwe poprzez ustawienie pliku cookie z przeszłą datą ważności.


99) Jaki jest domyślny czas sesji w PHP?

Domyślny czas sesji w php to czas do zamknięcia przeglądarki


100) Czy można używać komponentu COM w PHP?

Tak, możliwa jest integracja komponentów (rozproszonego) komponentowego modelu obiektowego ((D)COM) w skryptach PHP, które są dostarczane jako framework.


101) Wyjaśnij, czy możliwe jest współdzielenie pojedynczej instancji Memcache pomiędzy wieloma projektami PHP?

Tak, możliwe jest współdzielenie pojedynczej instancji Memcache pomiędzy wieloma projektami. Memcache to miejsce przechowywania pamięci, które można uruchomić na jednym lub większej liczbie serwerów. Możesz także skonfigurować klienta tak, aby komunikował się z określonym zestawem instancji. Można więc uruchomić dwa różne procesy Memcache na tym samym hoście, a mimo to są one całkowicie niezależne. Chyba, że ​​podzieliłeś swoje dane na partycje, wtedy konieczne będzie wiedzieć, z której instancji pobrać dane lub do której je umieścić.


102) Wyjaśnij, w jaki sposób możesz zaktualizować Memcached po wprowadzeniu zmian w PHP?

Kiedy PHP się zmieni, możesz zaktualizować Memcached przez

  • Aktywne czyszczenie pamięci podręcznej: Czyszczenie pamięci podręcznej po dokonaniu wstawienia lub aktualizacji
  • Resetowanie pamięci podręcznej: Jest to podobne do pierwszej metody, ale zamiast po prostu usuwać klucze i czekać na kolejne żądanie danych w celu odświeżenia pamięci podręcznej, zresetuj wartości po wstawieniu lub aktualizacji.

Te pytania podczas rozmowy kwalifikacyjnej pomogą również w Twoim życiu (ustach)

Podsumuj ten post następująco: