Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 22 kwietnia 2026 19:48
  • Data zakończenia: 22 kwietnia 2026 19:58

Egzamin zdany!

Wynik: 28/40 punktów (70,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Jaką wartość uzyska zmienna x po wykonaniu kodu PHP zaprezentowanego w ramce?

Ilustracja do pytania
A. Ilość wierszy dodanych do tabeli produkty
B. Ilość wierszy w bazie danych
C. Ilość wierszy w tabeli produkty, gdzie pole status jest większe od zera
D. Ilość wierszy przetworzonych przez zapytanie DELETE FROM
W przedstawionym kodzie PHP funkcja mysqli_affected_rows() jest używana do uzyskania liczby wierszy zmienionych przez ostatnie zapytanie MySQL. W tym przypadku zapytanie DELETE FROM produkty WHERE status < 0 próbuje usunąć wszystkie rekordy z tabeli produkty, których pole status ma wartość mniejszą od zera. Po wykonaniu tego zapytania funkcja mysqli_affected_rows($db) zwróci liczbę wierszy, które zostały rzeczywiście usunięte. To jest szczególnie przydatne w kontekście sprawdzania wpływu operacji na bazę danych i pozwala na dynamiczne podejmowanie decyzji w aplikacjach bazodanowych. Przykładowo, jeśli po usunięciu chcemy wykonać dodatkowe operacje tylko wtedy, gdy co najmniej jeden rekord został usunięty, możemy użyć tej funkcji. Zgodnie z dobrymi praktykami, korzystanie z mysqli_affected_rows() jest standardem, gdyż pozwala również na obsługę wyjątków i błędów bazy danych. Optymalizacja operacji DELETE poprzez precyzyjne filtrowanie w WHERE, jak w naszym przykładzie, jest kluczowa dla zachowania wydajności bazy danych szczególnie w dużych systemach produkcyjnych.

Pytanie 2

Aby uzyskać rezultaty działania skryptu napisanego w języku PHP, który jest częścią strony WWW, musi on być

A. skomponowany po stronie klienta
B. zinterpretowany po stronie klienta
C. zinterpretowany po stronie serwera
D. skomponowany po stronie serwera
Żeby zobaczyć, jak działa skrypt w PHP, musi on być obrobiony przez serwer. PHP to język, który kręci się na serwerze, więc to serwer przetwarza ten kod, a nie nasza przeglądarka. Jak użytkownik wysyła coś do serwera, ten bierze skrypt PHP, robi swoje magiczne sztuczki, generuje HTML i przesyła gotową stronę do przeglądarki. Na przykład, weźmy jakąś stronę, która zaciąga informacje z bazy danych właśnie dzięki PHP. Skrypt łączy się z bazą, robi zapytanie i zwraca wyniki w HTML. Są też różne standardy, jak RFC 2616 dla HTTP, które mówią o tym, jak ważne jest przetwarzanie po stronie serwera przy wysyłaniu żądań i odpowiedzi. Dzięki temu, mamy dynamiczne treści, które są na bieżąco generowane z danych zapisanych na serwerze. Tak więc, PHP to kluczowy element w wielu nowoczesnych aplikacjach internetowych, i nie da się bez niego żyć w tym świecie programowania.

Pytanie 3

W PHP, aby poprawnie zakończyć połączenie z bazą danych MySQL, ostatnim krokiem powinno być użycie polecenia

A. mysqli_close
B. die
C. mysql_exit
D. exit
Aby prawidłowo obsłużyć połączenie z bazą danych MySQL w języku PHP, kluczowym krokiem jest zamknięcie tego połączenia po zakończeniu operacji na bazie danych. Najlepszą praktyką jest użycie funkcji mysqli_close. Ta funkcja jest częścią rozszerzenia MySQLi (MySQL Improved), które oferuje nowoczesne podejście do komunikacji z bazą danych, w tym zwiększone bezpieczeństwo i wydajność. Po wywołaniu mysqli_close, wszystkie zasoby związane z połączeniem są zwalnianie, co pozwala na uniknięcie potencjalnych wycieków pamięci. Przykładowe użycie: $connection = mysqli_connect('host', 'user', 'password', 'database'); // Po dokonaniu operacji na bazie danych mysqli_close($connection);. Ważne jest, aby zamykać połączenia, szczególnie w aplikacjach działających w środowisku produkcyjnym, aby zapewnić optymalne wykorzystanie zasobów serwera oraz bezpieczeństwo danych. Standardowe zalecenia dokumentacji PHP podkreślają znaczenie użycia mysqli_close w celu zakończenia sesji z bazą danych, co sprzyja stabilności i niezawodności aplikacji.

Pytanie 4

W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
$z=mysqli_query($db,"SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a=mysqli_fetch_row($z);
echo "$a[1], $a[2]";

A. ulicy oraz miasta ze wszystkich zwróconych wpisów
B. miasta i kodu pocztowego ze wszystkich zwróconych wpisów
C. miasta i kodu pocztowego z pierwszego zwróconego wpisu
D. ulicy oraz miasta z pierwszego zwróconego wpisu
Fragment kodu PHP przedstawiony w pytaniu wykonuje zapytanie do bazy danych MySQL, a jego celem jest uzyskanie danych z tabeli 'adresy', w tym pola 'ulica', 'miasto' i 'kod_pocztowy'. Funkcja mysqli_query wykonuje zapytanie, a następnie mysqli_fetch_row pobiera pojedynczy wiersz wyników jako tablicę. Wartości z tablicy są dostępne za pomocą indeksów, gdzie $a[0] to 'ulica', $a[1] to 'miasto', a $a[2] to 'kod_pocztowy'. Kod wypisuje na ekranie wartości $a[1] i $a[2], co odpowiada miastu i kodowi pocztowemu z pierwszego zwróconego rekordu. W praktyce, aby uzyskać pełną funkcjonalność, należy również zadbać o obsługę błędów oraz o zabezpieczenia przed SQL Injection, stosując np. prepared statements. Kod ten jest zgodny ze standardami PHP i MySQL, które zalecają używanie obiektowej lub proceduralnej wersji funkcji mysqli, co przyczynia się do większej przejrzystości oraz bezpieczeństwa aplikacji.

Pytanie 5

Fragment formularza zaprezentowany powyżej został przetworzony w skrypcie PHP. Wskaż poprawny sposób pobierania wartości z pola edycyjnego.

Ilustracja do pytania
A. name = GET['imie']
B. $name = $POST['Imię']
C. $name = $_POST['imie']
D. name = $_GET[imie]
W przypadku niepoprawnych odpowiedzi kluczowym problemem jest niezrozumienie sposobu działania metod przesyłania danych w HTTP oraz odpowiedniego ich odczytywania w PHP. Odpowiedź z użyciem GET['imie'] pomija istotny element składniowy: znak dolara ($) przed GET, co jest konieczne w PHP dla wszystkich zmiennych. Ponadto, $_GET nie jest odpowiednia dla formularza, który został przesłany metodą POST jak w przedstawionym formularzu; użycie $_GET wskazuje na próbę pobrania danych z URL-a, co nie jest zgodne z metodą POST. Kolejna odpowiedź z użyciem $POST['Imię'] jest błędna z dwóch powodów: brak znaku dolara przy POST oraz niezachowanie poprawnej nazwy klucza który jest case-sensitive. Klucz 'Imię' różni się od 'imie' co prowadzi do błędu, gdy próbujemy odwołać się do nieistniejącego klucza. W PHP, nazwy kluczy w superglobalnych tablicach są case-sensitive, co oznacza, że każde odstępstwo od zadeklarowanej nazwy w formularzu będzie prowadziło do błędów. Te błędy często wynikają z pośpiechu lub niedokładności, co podkreśla wagę staranności i dokładności podczas pracy z kodem. Zarówno GET jak i POST mają swoje zastosowania, ale muszą być używane zgodnie z przeznaczeniem i w odpowiedni sposób, co jest kluczowe dla poprawnego działania aplikacji webowych. Zrozumienie tych różnic jest istotne dla programistów, aby unikać typowych pułapek związanych z bezpieczeństwem i funkcjonalnością aplikacji webowych. Poprawne użycie superglobalnych tablic PHP jest fundamentem tworzenia solidnych i bezpiecznych aplikacji internetowych.

Pytanie 6

Wynikiem realizacji zamieszczonego kodu PHP jest pokazanie komunikatu

Ilustracja do pytania
A. warunek2
B. warunek3
C. warunek1
D. warunek4
Kod w języku PHP przedstawia warunki logiczne, które oceniają wartości zmiennych $a, $b, $c i $d. Zmienna $a i $c są ustawione na true, natomiast $b i $d na false. Pierwszy warunek sprawdza, czy zarówno $a && $b (czyli true && false, co daje false) lub $c && $d (czyli true && false, co również daje false) jest prawdziwe. Oba wyrażenia są fałszywe, więc warunek if nie zostanie spełniony. Drugi warunek elseif sprawdza, czy $a && $b (false) lub $c || $d (true || false, co daje true) jest prawdziwe. Ponieważ $c || $d jest prawdziwe, cały warunek jest spełniony i zostanie wyświetlony komunikat warunek2. Dobrym przykładem praktycznego zastosowania takich konstrukcji jest walidacja danych w aplikacjach webowych, gdzie można łączyć różne warunki logiczne w celu osiągnięcia wymaganej logiki decyzyjnej. Ważne jest, by rozumieć priorytety operatorów logicznych i zasady działania operatora „OR” (||) i „AND” (&&) w języku PHP, zgodnie z dokumentacją PHP.

Pytanie 7

Skrypt strony internetowej stworzony w PHP

A. może być uruchomiony bez wsparcia serwera WWW
B. jest realizowany po stronie serwera
C. jest przetwarzany na tych samych zasadach co JavaScript
D. jest realizowany po stronie klienta
Kod strony WWW napisanej w języku PHP jest wykonywany po stronie serwera, co oznacza, że cały proces przetwarzania kodu zachodzi na serwerze, zanim strona zostanie wysłana do przeglądarki użytkownika. PHP jest językiem skryptowym, który generuje dynamiczne treści oraz może wchodzić w interakcje z bazami danych, co czyni go niezwykle efektywnym narzędziem do tworzenia aplikacji webowych. Przykładowo, gdy użytkownik wysyła formularz, skrypt PHP na serwerze może przetworzyć dane, a następnie wygenerować odpowiednią stronę HTML, która jest następnie przesyłana do klienta. Dodatkowo, PHP wspiera różne standardy, takie jak RESTful API, co pozwala na łatwe integrowanie z innymi systemami oraz aplikacjami. Warto także zauważyć, że PHP ma szeroką gamę frameworków, takich jak Laravel czy Symfony, które jeszcze bardziej ułatwiają rozwój aplikacji webowych poprzez dostarczanie gotowych rozwiązań oraz najlepszych praktyk. Z tego względu, znajomość PHP oraz jego działania po stronie serwera jest kluczowa dla każdego dewelopera webowego, który pragnie tworzyć nowoczesne i efektywne aplikacje.

Pytanie 8

$i=10; $a=0; while $i) { $a=$a+2; $i--; } W języku PHP przedstawiono fragment kodu. Jaka będzie wartość zmiennej a po zakończeniu pętli?

A. 20
B. 10
C. 0
D. 2
Nieprawidłowe odpowiedzi są wynikiem niepełnego zrozumienia działania pętli while w PHP oraz mechanizmu dekremencji zmiennych. Odpowiedzi wskazujące na wartość 0, 2, czy 10 ignorują fakt, że pętla wykonuje się wielokrotnie, a każda iteracja wpływa na końcową wartość zmiennej $a. Odpowiedź 0 sugeruje, że pętla w ogóle się nie wykonała, co jest niezgodne z logiką działania while. Pętla ta będzie aktywna tak długo, jak zmienna $i jest różna od zera, a ponieważ $i zaczyna się od 10, pętla wykona się 10 razy. Odpowiedź 2 może wynikać z błędnego rozumienia, że pętla wykona się tylko raz, co jest sprzeczne z jej definicją; na każdym kroku $a zwiększa się o 2, co w kontekście pełnych 10 iteracji pozostawia $a na poziomie 20. Z kolei wartość 10 mogłaby wynikać z mylnego przekonania, że $a zwiększa się jedynie o 1 na każdym kroku, co również jest fałszywe, gdyż w każdej iteracji dodawane jest 2. Kluczowe do zrozumienia tego fragmentu kodu jest rozważenie, jak iteracje pętli wpływają na zmienne oraz jakie są efekty działania tych operacji. W programowaniu istotne jest, aby dokładnie analizować każdy krok, aby uniknąć błędów logicznych, które mogą prowadzić do nieoczekiwanych wyników.

Pytanie 9

W języku PHP uzyskano wyniki kwerend z bazy danych przy użyciu polecenia mysql_query. Aby wydobyć z otrzymanej kwerendy pojedynczy wiersz danych, konieczne jest użycie polecenia

A. mysql_list_fields
B. mysql_fetch_lengths
C. mysql_fetch_row
D. mysql_field_len
Odpowiedź mysql_fetch_row jest poprawna, ponieważ to funkcja, która pozwala na pobranie pojedynczego wiersza danych z zasobu zwróconego przez mysql_query. Zwraca ona tablicę, która zawiera wartości poszczególnych pól w wierszu, co umożliwia ich dalsze przetwarzanie. Dzięki tej funkcji programista może łatwo iterować przez wyniki kwerendy, co jest kluczowe w przypadku przetwarzania danych z baz danych. Na przykład, po wykonaniu kwerendy SELECT, można użyć pętli while, aby pobierać kolejne wiersze danych i je wyświetlać. Dobrą praktyką jest również sprawdzenie, czy zasób kwerendy jest poprawny przed użyciem tej funkcji, co pozwoli uniknąć błędów w czasie wykonywania skryptu. Warto dodać, że w nowszych wersjach PHP zaleca się korzystanie z rozszerzenia mysqli lub PDO, które oferują bardziej zaawansowane możliwości i większe bezpieczeństwo przy pracy z bazami danych.

Pytanie 10

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia klienta z serwerem oraz umożliwia wymianę danych bez konieczności przeładowania całej strony WWW?

A. VBScript
B. XML
C. PHP
D. AJAX
Wybór odpowiedzi nieprawidłowych, takich jak PHP, XML czy VBScript, wskazuje na częste nieporozumienia dotyczące funkcji oraz zastosowania tych technologii w kontekście komunikacji klient-serwer. PHP to język skryptowy wykorzystywany głównie do generowania dynamicznej treści na serwerze. Chociaż PHP może być używane do obsługi żądań z AJAX, samo w sobie nie zapewnia asynchroniczności ani nie umożliwia komunikacji bez przeładowania strony. XML, mimo że jest formatem danych, nie jest techniką komunikacyjną. Może być wykorzystywane w AJAX jako format przesyłania danych, ale nie jest to jego główne zastosowanie. VBScript to język skryptowy, który jest przestarzały i nie jest odpowiedni do nowoczesnych aplikacji internetowych. Wybierając te odpowiedzi, można popaść w błąd, sądząc, że różne technologie mają podobne zastosowania, co prowadzi do nieporozumień dotyczących struktury aplikacji internetowych. Ważne jest zrozumienie roli, jaką różne technologie odgrywają w architekturze aplikacji, aby właściwie wykorzystywać ich możliwości w praktyce.

Pytanie 11

Jak przy użyciu języka PHP można zapisać w ciasteczku wartość z zmiennej dane na okres jednego dnia?

A. setcookie("dane",$dane,time()+(3600*24))
B. setcookie("dane","dane",0)
C. setcookie("dane",$dane,time())
D. setcookie("dane",$dane,0)
Odpowiedź setcookie("dane", $dane, time() + (3600 * 24)); jest prawidłowa, ponieważ wykorzystuje funkcję setcookie, która pozwala na ustawienie ciasteczka w PHP. W pierwszym argumencie podajemy nazwę ciasteczka, w drugim jego wartość, a w trzecim czasie wygaśnięcia, który jest określony jako aktualny czas (time()) plus 24 godziny w sekundach (3600 sekund w godzinie razy 24). Takie podejście zapewnia, że ciasteczko będzie dostępne przez jeden dzień, co jest zgodne z dobrymi praktykami w zakresie zarządzania stanem użytkownika. Ciasteczka są powszechnie stosowane w aplikacjach webowych do przechowywania danych użytkownika pomiędzy sesjami, co zwiększa komfort korzystania z serwisów. Przykładem może być zapisanie preferencji użytkownika lub informacji o sesji. Warto pamiętać, że przed użyciem setcookie nie może być wysłany żaden HTML, więc ta funkcja powinna być wywoływana przed jakimkolwiek innym kodem, który generuje wyjście.

Pytanie 12

Z którego z pól klasy ```Dane``` można będzie uzyskać dostęp z zewnątrz, korzystając z obiektu stworzonego jako instancja tej klasy? ```class Dane { public $a; private $b; protected $c; }```

A. Do pola $a.
B. Do pola $b.
C. Do wszystkich pól.
D. Do pola $c.
Odpowiedź jest prawidłowa, ponieważ pole $a jest zadeklarowane jako publiczne, co oznacza, że jest dostępne z zewnątrz klasy i może być modyfikowane oraz odczytywane przez instancje tej klasy oraz inne klasy. Publiczne modyfikatory dostępu są standardową praktyką w programowaniu obiektowym, umożliwiającą swobodny dostęp do danych, co jest szczególnie przydatne w przypadku, gdy chcemy, aby dane były łatwo dostępne dla innych komponentów systemu. Na przykład, jeśli klasa Dane jest używana w aplikacji, możemy tworzyć obiekty tej klasy i bezpośrednio operować na polu $a, co sprzyja elastyczności i prostocie w zarządzaniu danymi. W dobrych praktykach programistycznych często wykorzystuje się publiczne pola w prostych strukturach danych, gdzie dostęp do danych musi być łatwy i szybki. Warto także pamiętać, że dostępność publicznych pól może być użyteczna w kontekście serializacji obiektów, gdzie prosto jest zmapować dane obiektu na format JSON lub XML.

Pytanie 13

echo date"Y"); Po uruchomieniu tego kodu PHP na ekranie ukaże się bieżąca data, obejmująca wyłącznie

A. dzień i miesiąc
B. dzień
C. rok
D. miesiąc i rok
Odpowiedź 'rok' jest prawidłowa, ponieważ w podanym kodzie PHP echo date('Y') zwraca aktualny rok w czterocyfrowym formacie, np. 2023. Funkcja date w PHP jest używana do formatowania daty i czasu, a 'Y' jest stałą formatującą, która reprezentuje rok w pełnym formacie. Dzięki temu programista może łatwo uzyskać i wyświetlić rok w różnych kontekstach, na przykład w systemach zarządzania treścią, raportach czy aplikacjach webowych. Praktyczne zastosowanie tej funkcji jest szerokie, np. w generowaniu automatycznych stopki na stronach internetowych, gdzie często umieszcza się aktualny rok, aby informować użytkowników o bieżącym roku w kontekście praw autorskich. Znajomość różnych formatów daty i ich zastosowanie zgodnie z dobrymi praktykami programistycznymi z pewnością przyczyni się do poprawy jakości kodu.

Pytanie 14

Określ rezultat wykonania skryptu stworzonego w języku PHP

Ilustracja do pytania
A. A
B. D
C. B
D. C
Odpowiedź A jest prawidłowa, ponieważ funkcja asort() w PHP sortuje tablicę asocjacyjną według wartości w porządku rosnącym, ale zachowuje oryginalne klucze. W tym przypadku mamy tablicę z wartościami tekstowymi. Funkcja asort() posortuje te wartości alfabetycznie, co oznacza, że najpierw pojawi się 'Perl', następnie 'PHP', 'Pike' i na końcu 'Python'. Klucze zostaną przypisane do odpowiednich wartości, co jest widoczne w odpowiedzi A. Użycie asort() jest bardzo przydatne, gdy chcemy zachować związki między kluczami i wartościami w tablicach asocjacyjnych, jednocześnie sortując je według wartości. Dobrą praktyką jest używanie tej funkcji w sytuacjach, gdzie klucze mają znaczenie, takie jak przetwarzanie danych konfiguracyjnych lub wyników ankiet. Dodatkowo, rozumienie różnic między funkcjami sortującymi w PHP jak sort(), asort(), ksort(), usort(), uasort() i uksort() jest kluczowe w efektywnym manipulowaniu danymi w skryptach PHP, pozwalając na precyzyjną kontrolę nad strukturami danych i ich porządkowaniem.

Pytanie 15

Jakiego języka można użyć do nawiązania połączenia z bazą MySQL w trakcie tworzenia aplikacji internetowej?

A. XHTML
B. HTML
C. PHP
D. CSS
PHP to naprawdę fajny język skryptowy, który świetnie sprawdza się w tworzeniu dynamicznych aplikacji internetowych. Jest super efektywny, kiedy trzeba połączyć się z bazami danych, takimi jak MySQL. Jako język serwerowy, daje programistom narzędzia do robienia różnych rzeczy z danymi, jak dodawanie, edytowanie czy usuwanie rekordów w bazie. Na przykład, gdy tworzysz aplikację do zarządzania użytkownikami, możesz użyć PHP do obsługi formularza rejestracyjnego, który zbiera dane od użytkowników i następnie łączy się z MySQL, by je zapisać. Do łączenia z bazą danych używa się funkcji, jak mysqli_connect() lub PDO (PHP Data Objects), co pozwala na bezpieczne i sprawne zarządzanie połączeniami oraz zapytaniami SQL. Co ważne, PHP zachęca do dobrych praktyk, jak stosowanie przygotowanych zapytań, co mocno zwiększa bezpieczeństwo aplikacji, chroniąc przed różnymi atakami, jak SQL injection.

Pytanie 16

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. ulicy i miasta z pierwszego zwróconego rekordu
B. miasta i kodu pocztowego z pierwszego zwróconego rekordu
C. ulicy i miasta ze wszystkich zwróconych rekordów
D. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
Kod PHP używa funkcji mysqli_query do wykonania zapytania SELECT, które pobiera kolumny ulica miasto i kod_pocztowy z tabeli adresy. Następnie funkcja mysqli_fetch_row pobiera pierwszy rekord wyników jako tablicę. Elementy tej tablicy są indeksowane od 0 dlatego $a[1] odnosi się do drugiego elementu czyli kolumny miasto a $a[2] do trzeciego elementu czyli kolumny kod_pocztowy. Funkcja echo wypisuje te dwie wartości co oznacza że kod faktycznie wyświetla miasto i kod pocztowy z pierwszego zwróconego rekordu. W praktyce takie podejście jest używane do szybkiego dostępu do danych z bazy jednak warto pamiętać o zabezpieczeniach takich jak filtrowanie danych wejściowych czy użycie przygotowanych zapytań aby chronić się przed SQL Injection. Dobre praktyki obejmują także obsługę błędów połączenia z bazą oraz poprawne zarządzanie zasobami takimi jak zamykanie połączenia po zakończeniu operacji na bazie danych. Używanie indeksów liczbowych może być mniej czytelne dlatego w bardziej złożonych aplikacjach zaleca się stosowanie mysqli_fetch_assoc dla łatwiejszego dostępu przez nazwy kolumn.

Pytanie 17

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_COOKIE
B. $_SERVER
C. $_FILES
D. $_SESSION
Odpowiedź $_SESSION jest spoko, bo ta superglobalna tablica jest stworzona do trzymania danych związanych z sesjami, co jest mega ważne przy logowaniu. Fajna rzecz w $_SESSION jest taka, że informacje w niej są dostępne tylko podczas, gdy sesja jest aktywna, co poprawia bezpieczeństwo i chroni przed kradzieżą ciasteczek. Używając $_SESSION, można śmiało przechowywać dane logowania, jak ID użytkownika czy jego uprawnienia. Na przykład można użyć $_SESSION do zapamiętania, czy użytkownik jest zalogowany, co pomaga w kontrolowaniu dostępu do różnych części aplikacji. I według mnie, po zakończeniu sesji dobrze jest wyczyścić te dane, bo to dodatkowo zabezpiecza aplikację przed niechcianym dostępem. Ogólnie, korzystając z $_SESSION, programiści mogą się skupić na logice aplikacji, wiedząc, że dane są zarządzane w miarę bezpiecznie.

Pytanie 18

W PHP użyto funkcji is_int(). Które z wymienionych wywołań tej funkcji da wynik TRUE?

A. is_int(13.5)
B. is_int(135)
C. is_int(NULL)
D. is_int("135")
Funkcja is_int() w języku PHP służy do sprawdzania, czy dany argument jest liczbą całkowitą (typ integer). W przypadku wywołania is_int(135), przekazujemy wartość 135, która jest liczbą całkowitą. Funkcja zwróci TRUE, ponieważ 135 spełnia wymóg bycia liczbą całkowitą. W praktyce, użycie is_int() jest przydatne, gdy pracujemy z danymi, które mogą przyjmować różne typy, a naszą intencją jest upewnienie się, że operacje będą wykonywane na liczbach całkowitych. Przykładowo, podczas walidacji danych wejściowych w formularzach mogą się zdarzyć przypadki, gdzie użytkownik wprowadza błędne typy, a is_int() pozwala na ich skuteczną weryfikację przed dalszym przetwarzaniem. W dobrych praktykach programistycznych zawsze warto stosować takie mechanizmy walidacyjne, aby uniknąć błędów w działaniu aplikacji i poprawić jej stabilność. Ważne jest również, aby znać różnice między typami danych w PHP, ponieważ może to mieć wpływ na działanie aplikacji.

Pytanie 19

Jakie będzie wynikowe wyjście po uruchomieniu tego skryptu PHP?

<?php
$kolory = array("czarny", "zielony", "niebieski", "biały");
rsort($kolory);
$ile = count($kolory);
for($x = 0; $x < $ile; $x++)
{
  echo $kolory[$x].", ";
}
?>
A. biały, czarny, niebieski, zielony
B. zielony, niebieski, czarny, biały
C. czarny, zielony, niebieski, biały
D. biały, niebieski, zielony, czarny
W przypadku podanego skryptu PHP błędne odpowiedzi wynikają z niewłaściwej interpretacji działania funkcji rsort(). Zadaniem tej funkcji jest sortowanie elementów tablicy w porządku malejącym na podstawie wartości ASCII pierwszego znaku każdego elementu. Jeśli przyjrzymy się tablicy zawierającej słowa czarny zielony niebieski biały funkcja rsort() ułoży je w odwrotnej kolejności alfabetycznej zaczynając od słów których pierwsze litery mają wyższą wartość ASCII. Typowym błędem może być niezrozumienie że rsort() działa na całych wartościach łańcuchów a nie tylko na pierwszych literach. Należy również pamiętać że funkcje sortujące takie jak rsort() nie zwracają nowej tablicy lecz modyfikują istniejącą co czasem może prowadzić do niepoprawnych założeń dotyczących oryginalnych danych. Innym częstym błędem jest zakładanie że rsort() zachowuje porządek elementów o tej samej wartości początkowej co nie jest prawdą jeśli dwa elementy miałyby tę samą pierwszą literę rsort() może zmienić ich kolejność względem siebie. Właściwe zrozumienie działania funkcji sortujących w PHP jest niezbędne aby uniknąć błędów logicznych i zapewnić że nasze aplikacje działają zgodnie z oczekiwaniami.

Pytanie 20

W języku PHP istnieje funkcja, która pozwala na weryfikację, czy dany ciąg stanowi część innego ciągu, to

A. strlen()
B. strstr()
C. trim()
D. strtok()
Trim() jest funkcją, która służy do usuwania białych znaków z początku i końca ciągu. Nie ma związku z wyszukiwaniem podciągów, co sprawia, że jej zastosowanie w kontekście tego pytania jest błędne. Z kolei strtok() jest funkcją, która dzieli ciąg tekstowy na tokeny, co również nie odpowiada na potrzeby określenia, czy jeden ciąg jest fragmentem innego. Użycie strtok() do tego celu wymagałoby dodatkowych kroków i złożoności, co czyni ją nieefektywną w tym kontekście. Ostatnia z wymienionych funkcji, strlen(), zwraca długość ciągu, co również nie odnosi się do problemu sprawdzania przynależności podciągu. Typowe błędy myślowe związane z tymi odpowiedziami to mylenie funkcji manipulujących tekstem i ich właściwego zastosowania. Użytkownicy mogą nie dostrzegać, że każda z tych funkcji ma swoje specyficzne cele i użycie ich w nieodpowiednich kontekstach prowadzi do niepoprawnych rezultatów. Ważne jest, aby zrozumieć, że do sprawdzania, czy jeden ciąg jest częścią drugiego, najlepiej służy strstr(), która jest funkcją optymalną pod kątem wydajności i prostoty użycia.

Pytanie 21

Jaka funkcja w PHP pozwala na wyświetlenie ciągu n znaków @?

function znaki($znak,$i++){
for($i=0;$i<$n;$i++)
print($znak);
}
znaki(@,$n);
A
function znaki($i){
for($i=0;$i<$n;$i++)
print("@");
}
znaki($i);
B
function znaki($znak,$i++){
for($i=0;$i<$n;$i++)
print($znak);
}
znaki($n);
C
function znaki($znak,$n){
for($i=0;$i<$n;$i++)
print($znak);
}
znaki("@",$n);
D
A. C
B. B
C. D
D. A
Odpowiedź D jest prawidłowa ponieważ pokazuje właściwe zastosowanie funkcji w języku PHP aby wyświetlić ciąg n znaków @. W tej funkcji znaki podajemy dwa parametry: pierwszy określa znak do wyświetlenia w tym przypadku @ drugi liczbę powtórzeń czyli n. Funkcja wykorzystuje pętlę for aby iteracyjnie wyświetlać zadany znak dopóki licznik iteracji nie osiągnie wartości n. Przekazanie @ jako pierwszego argumentu i n jako drugiego umożliwia elastyczne i dynamiczne generowanie ciągów o żądanej długości co jest zgodne z dobrymi praktykami w programowaniu PHP. Taki sposób pisania kodu sprzyja czytelności i łatwości utrzymania co jest kluczowe w większych projektach gdzie często wymagana jest elastyczność i możliwość ponownego użycia kodu. Ponadto funkcja ta ilustruje podstawowe zasady programowania obiektowego takie jak enkapsulacja i modularność dzięki czemu kod jest łatwiejszy do zrozumienia i modyfikacji gdy zachodzi taka potrzeba. Pamiętaj że w praktycznych zastosowaniach warto używać funkcji bibliotecznych jak str_repeat które oferują podobną funkcjonalność z większą optymalizacją. Takie podejście zapewnia nie tylko poprawność działania ale także optymalizację wydajności co jest istotne szczególnie w aplikacjach o dużym obciążeniu i skali. Poprawne użycie odpowiednich funkcji i struktur danych jest kluczem do utrzymania wysokiej jakości kodu w projektach PHP.

Pytanie 22

Która z wymienionych funkcji sortowania w języku PHP służy do sortowania tablicy asocjacyjnej według kluczy?

A. asort()
B. sort()
C. rsort()
D. ksort()
Funkcja ksort() w języku PHP jest dedykowana do sortowania tablic asocjacyjnych według ich kluczy. Dzięki zastosowaniu tej funkcji, tablica zostaje uporządkowana w sposób rosnący, co jest szczególnie przydatne, gdy potrzebujemy danych w zorganizowanej formie lub gdy chcemy prezentować je użytkownikowi w logicznej kolejności. Przykładowo, jeśli mamy tablicę asocjacyjną, gdzie klucze reprezentują nazwy produktów, a wartości to ich ceny, użycie ksort() pozwoli nam posortować produkty alfabetycznie. Dobrą praktyką jest stosowanie ksort() w projektach, gdzie istotna jest czytelność i przejrzystość danych, co może mieć wpływ na UX (User Experience) aplikacji. Warto również pamiętać, że jeśli tablica zawiera różne typy kluczy, to sortowanie może prowadzić do nieoczekiwanych wyników. Z tego względu, ksort() jest najlepszym wyborem, gdyż spełnia wymagania standardów sortowania oraz zapewnia zgodność z dobrymi praktykami programistycznymi.

Pytanie 23

Funkcją przedstawionego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x) {
    if ($x < 0) echo "$x ";
}
A. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
B. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
C. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
D. Kolejnymi liczbami od 0 do 9 i wypisanie ich
Kod w języku PHP użyty w pytaniu generuje tablicę o rozmiarze 10, wypełniając ją losowymi wartościami w zakresie od -100 do 100. Służy do tego funkcja rand(), która generuje liczby pseudolosowe. Następnie kod przechodzi przez każdą wartość tablicy przy użyciu pętli foreach i sprawdza czy wartość jest mniejsza od zera. Jeśli tak, wyświetla ją na ekranie za pomocą funkcji echo. To podejście pozwala na łatwe filtrowanie i wyświetlanie tylko tych wartości, które spełniają określone kryteria, co jest częstą praktyką w analizie danych. Przykładowe zastosowania tego rodzaju kodu można spotkać w systemach, które wymagają analizy danych statystycznych, takich jak badanie trendów w danych finansowych czy analizie wyników testów. Standardy programistyczne sugerują, aby kod był czytelny i dobrze udokumentowany, co zwiększa jego zrozumiałość i ułatwia późniejszą konserwację. Podczas pracy z funkcją rand() pamiętaj, że generowane liczby są pseudolosowe, co oznacza, że przy każdym uruchomieniu tego samego skryptu wyniki mogą się różnić. Prawidłowe użycie pętli i instrukcji warunkowych jest kluczowe w efektywnym przetwarzaniu danych w języku PHP.

Pytanie 24

Dany jest fragment kodu PHP z zadeklarowaną zmienną typu tablicowego W wyniku wykonania kodu zostanie wypisane imię

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Aleksandra
B. Krzysztof
C. Anna
D. Tomasz
Brawo! Twoja odpowiedź jest poprawna. Zrozumienie jak funkcje w języku PHP przetwarzają i manipulują danymi, szczególnie w kontekście tablic, jest absolutnie kluczowe. W podanym fragmencie kodu PHP, funkcja 'echo' jest użyta do wypisania elementu tablicy '$imiona' o indeksie [2]. Elementem tym jest 'Krzysztof', co jest poprawnym rozwiązaniem. PHP, jako język programowania obsługujący tablice indeksowane i asocjacyjne, pozwala na wybieranie konkretnych elementów tablicy poprzez podanie indeksu w kwadratowych nawiasach po nazwie tablicy. Jest to standardowa i często wykorzystywana praktyka w programowaniu, która umożliwia efektywne zarządzanie danymi. Dzięki temu, możemy manipulować danymi z różnych segmentów kodu, co daje nam większą elastyczność i kontrolę nad programem.

Pytanie 25

W języku PHP do zmiennej a przypisano ciąg znaków, w którym wielokrotnie pojawia się słowo Kowalski. Aby jednym poleceniem wymienić w zmiennej a wszystkie wystąpienia słowa Kowalski na słowo Nowak, należy użyć polecenia

A. $a = str_replace('Kowalski', 'Nowak', $a);
B. $a = str_rep('Kowalski', 'Nowak', $a);
C. $a = str_replace('Nowak', 'Kowalski');
D. $a = str_replace('Nowak', 'Kowalski', $a);
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest jak najbardziej trafna. Funkcja str_replace w PHP działa tak, że zamienia wszystkie wystąpienia jednego ciągu znaków na inny w danym tekście. W tym przypadku zastępujemy 'Kowalski' słowem 'Nowak'. To działa tak, że jak masz tekst 'Jan Kowalski i Anna Kowalski' w zmiennej $a, po wykonaniu tego kodu $a zmieni się na 'Jan Nowak i Anna Nowak'. Tego typu operacje są naprawdę przydatne w PHP, zwłaszcza gdy zajmujemy się danymi, które musimy zmieniać lub aktualizować, na przykład w aplikacjach internetowych. Pamiętaj, żeby używać takich funkcji w odpowiednich miejscach, bo operacje na dużych zbiorach danych mogą być wymagające.

Pytanie 26

W języku PHP, po wykonaniu poniższego fragmentu kodu, w zmiennej o nazwie Nowy_Napis zostanie zapisany:

$Napis = "ZaWszE SpRaWdZ swoj KoD";
$Nowy_Napis = strtolower($Napis);
A. ZaWszE
B. ZAWSZE SPRAWDZ SWOJ KOD
C. zawsze sprawdz swoj kod
D. zAwSZe sPrAwDz SWOJ kOd
Odpowiedź 'zawsze sprawdz swoj kod' jest poprawna, ponieważ funkcja strtolower() w PHP konwertuje wszystkie znaki w łańcuchu na małe litery. W przypadku podanego kodu, zmienna $Napis zawiera tekst 'ZaWszE SpRaWdZ swoj KoD', który po zastosowaniu funkcji strtolower() przekształca się na 'zawsze sprawdz swoj kod'. Praktyczne zastosowanie tej funkcji jest bardzo istotne w kontekście normalizacji danych wejściowych, szczególnie w aplikacjach internetowych, gdzie wielkość liter może wpływać na sposób przechowywania, wyszukiwania lub porównywania tekstów. Warto również podkreślić, że w przypadku korzystania z baz danych, stosowanie jednolitej konwencji zapisu (np. zawsze małe litery) może zminimalizować ryzyko błędów i niejednoznaczności. Dobrymi praktykami jest także walidacja danych użytkowników oraz przygotowywanie ich do dalszego przetwarzania, co sprzyja lepszej organizacji kodu i efektywności aplikacji.

Pytanie 27

O zmiennej predefiniowanej

$_POST 
w języku PHP można stwierdzić, że
A. zawiera dane bezpośrednio dostarczone do skryptu z ciasteczka
B. jest rozwiniętą wersją tablicy $_SESSION
C. jest odwzorowaniem tablicy $_COOKIE
D. zawiera dane przesłane do skryptu za pośrednictwem formularza
Odpowiedź, że zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z formularza, jest w pełni poprawna. W języku PHP, $_POST to jedna z superglobalnych tablic, która umożliwia dostęp do danych przesyłanych metodą POST. Metoda ta jest powszechnie stosowana w formularzach HTML, gdzie użytkownik może wprowadzać dane, które następnie są wysyłane do serwera. Na przykład, formularz kontaktowy, w którym użytkownik wprowadza swoje imię i adres e-mail, może być przetwarzany za pomocą $_POST, co pozwala na łatwą i bezpieczną obsługę danych. Dobrą praktyką jest również walidacja danych przed ich użyciem, aby zminimalizować ryzyko ataków, takich jak SQL Injection czy XSS. Dzięki zastosowaniu $_POST, programiści mogą przechwytywać i przetwarzać dane użytkowników w bardziej zaawansowany sposób, co pozwala na dynamiczne generowanie treści i interakcję z użytkownikami.

Pytanie 28

Jeśli zmienna $x przechowuje dowolną dodatnią liczbę naturalną, przedstawiony kod źródłowy PHP ma za zadanie wyświetlić:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
B. losowe liczby z przedziału (0, x)
C. kolejne liczby od x do 0
D. kolejne liczby od 0 do x-1
Niektóre odpowiedzi sugerują niepoprawne interpretacje kodu PHP. Na przykład, propozycja wyświetlenia losowych liczb z zakresu (0, x) nie jest prawidłowa, ponieważ nie ma w kodzie żadnego komponentu generującego liczby losowe. Również pomysł na wczytywanie liczb z klawiatury jest nieprawidłowy, kod nie zawiera żadnej funkcji umożliwiającej wprowadzanie danych przez użytkownika. Ostatecznie, propozycja wyświetlenia liczb od x do 0 również jest błędna, gdyż zmienna $licznik jest zawsze inkrementowana, co oznacza, że jej wartość zawsze wzrasta. Błędne interpretacje wynikają z niewłaściwego zrozumienia funkcjonowania pętli while oraz procesu inkrementacji zmiennych. Ważne jest, aby zawsze dokładnie analizować każdy fragment kodu, zwracając szczególną uwagę na instrukcje warunkowe i manipulacje zmiennymi.

Pytanie 29

W języku PHP zapis

// 
pozwala na:
A. dodanie komentarza wieloliniowego
B. dodanie komentarza jednoliniowego
C. użycie tablicy superglobalnej
D. użycie operatora dzielenia bez reszty
W języku PHP zapis <pre>//</pre> służy do wstawiania komentarzy jednoliniowych. Komentarze są istotnym elementem kodu, ponieważ pozwalają programistom na dokumentowanie i wyjaśnianie fragmentów kodu, co ułatwia jego zrozumienie i utrzymanie. W PHP, komentarze jednoliniowe zaczynają się od dwóch ukośników i rozciągają się do końca danej linii. Przykładowo, zapis <pre>// To jest komentarz jednoliniowy</pre> informuje innych programistów, że dany tekst jest komentarzem, który nie zostanie wykonany przez interpreter PHP. Stosowanie komentarzy jest zgodne z najlepszymi praktykami programowania, ponieważ poprawia czytelność kodu oraz pozwala na szybszą analizę struktury i logiki aplikacji. Dobrą praktyką jest dokumentowanie nie tylko skomplikowanych fragmentów, ale również takich, które mogą wydawać się oczywiste, aby zminimalizować ryzyko nieporozumień w przyszłości. Komentarze pomagają także w pracy zespołowej, gdzie wiele osób może pracować nad tym samym projektem.

Pytanie 30

Po uruchomieniu kodu PHP

echo date("Y-m");
na ekranie pojawi się bieżąca data w formacie:
A. dnia, miesiąca, roku
B. tylko roku
C. roku oraz miesiąca
D. dnia i roku
Odpowiedź 'rok i miesiąc' jest prawidłowa, ponieważ funkcja 'date' w PHP formatuje datę na podstawie podanego wzorca. W przypadku użycia wzorca 'Y-m', 'Y' oznacza pełny rok (np. 2023), a 'm' oznacza dwucyfrowy miesiąc (np. 03 dla marca). W wyniku działania 'echo date("Y-m");' na ekranie zostanie wyświetlona aktualna data w formacie YYYY-MM, co jest niezwykle przydatne w wielu aplikacjach, takich jak generowanie raportów miesięcznych, archiwizacja danych czy implementacja systemów zarządzania treścią. Użycie tego wzorca jest zgodne z najlepszymi praktykami programistycznymi, które zalecają właściwe formatowanie daty w celu jej późniejszej analizy lub prezentacji. Ponadto, umiejętność manipulacji datami w PHP jest kluczowa w kontekście tworzenia aplikacji webowych, które często wymagają interakcji z użytkownikami w czasie rzeczywistym, a także integracji z bazami danych, gdzie prawidłowe formatowanie daty ma kluczowe znaczenie dla integralności danych.

Pytanie 31

W aplikacji PHP do bazy danych została wysłana kwerenda SELECT przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić, ile rekordów zostało zwróconych przez zapytanie?

A. mysqli_query
B. mysqli_num_rows
C. mysqli_connect
D. mysqli_fetch_row
Przy wyborze niewłaściwych funkcji jako alternatywy dla mysqli_num_rows pojawia się wiele nieporozumień dotyczących operacji na wynikach zapytań w PHP. Wybór mysqli_fetch_row sugeruje, że użytkownik mylnie zakłada, iż ta funkcja zwraca liczbę rekordów. W rzeczywistości, mysqli_fetch_row służy do pobierania kolejnych wierszy z wyniku zapytania jako tablicy, co oznacza, że do zliczenia rekordów musielibyśmy wielokrotnie wywoływać tę funkcję w pętli, co jest nieefektywne i niezgodne z zasadami optymalizacji. Z kolei mysqli_query, choć fundamentem do wykonania zapytania, nie ma funkcji zliczającej rekordy. Użytkownicy często mylą jej wydajność z funkcją zliczania, co prowadzi do nieefektywnego kodu. Funkcja mysqli_connect jest przeznaczona do nawiązywania połączenia z bazą danych, a nie do operacji na wynikach zapytań. Jest to typowy błąd nowicjuszy, którzy nie rozumieją, że użycie funkcji do zaistnienia w bazie nie ma związku ze zliczaniem rekordów. W praktyce, aby uzyskać informacje o liczbie rekordów, kluczowe jest zrozumienie, że każda z tych funkcji ma swoje zdefiniowane zadania i użycie ich w nieodpowiednich kontekstach prowadzi do nieoptymalnych rozwiązań, co jest sprzeczne z najlepszymi praktykami programowania.

Pytanie 32

Po uruchomieniu poniższego fragmentu kodu PHP:

echo date("Y");
na ekranie pojawi się bieżąca data zawierająca tylko:
A. miesiąc i rok
B. dzień i miesiąc
C. rok
D. dzień
W odpowiedzi na pytanie, kod PHP echo date("Y"); zwraca aktualny rok, co jest zgodne z jego konstrukcją. Funkcja date() w PHP jest standardowym sposobem na formatowanie daty i czasu. Przekazany argument "Y" oznacza, że chcemy otrzymać rok w czterocyfrowym formacie. Na przykład, jeśli aktualny rok to 2023, wynik będzie wynosił 2023. Tego rodzaju operacje są niezwykle przydatne w różnych aplikacjach, od prostych stron internetowych po bardziej złożone systemy zarządzania treścią, gdzie dane o roku mogą być wykorzystywane do generowania dynamicznych treści, takich jak stopki z roku lub nagłówki z aktualnym rokiem. Użycie funkcji date() w odpowiedni sposób jest zgodne z najlepszymi praktykami programowania w PHP, które zalecają używanie wbudowanych funkcji do zarządzania datami i czasem, co zapewnia większą niezawodność i prostotę w kodzie.

Pytanie 33

Po uruchomieniu poniższego kodu PHP na ekranie ukaże się bieżąca data w formacie:

echo date("Y-m");
A. dzień oraz rok
B. tylko rok
C. dzień, miesiąc, rok
D. rok oraz miesiąc
Odpowiedź "rok i miesiąc" jest prawidłowa, ponieważ funkcja date() w PHP, kiedy wykorzystujemy format "Y-m", zwraca datę w formacie roku, np. 2023, oraz miesiąca w postaci dwucyfrowej, np. 09 dla września. Warto zrozumieć, że format "Y" generuje czterocyfrowy rok, natomiast "m" generuje dwucyfrowy miesiąc. To podejście jest często wykorzystywane w aplikacjach webowych do prezentacji dat w sposób zrozumiały dla użytkowników, a także do grupowania danych według miesięcy w bazach danych. Przykładowo, w systemach raportowania finansowego, często wykorzystuje się ten format do agregacji danych sprzedażowych według miesięcy, co ułatwia analizę wyników. Użycie odpowiednich standardów w formacie daty wspomaga utrzymanie spójności i czytelności danych w różnych systemach informatycznych.

Pytanie 34

Jaki będzie rezultat po uruchomieniu podanego skryptu?

class Owoc {
    function __construct() {
        echo "test1";
    }
    function __destruct() {
        echo "test2";
    }
}
$gruszka = new Owoc();
A. Pojawi się jedynie tekst „test1”
B. Nie pojawi się żaden tekst
C. Pojawią się oba teksty: „test1” i „test2”
D. Pojawi się wyłącznie tekst „test2”
Wybór błędnych odpowiedzi może wynikać z tego, że nie do końca rozumiesz, jak działają konstruktory i destruktory w programowaniu obiektowym. Nie jest tak, że nie ma żadnego napisu, bo nawet jeżeli nie stworzysz obiektu, to przy końcu skryptu destruktor powinien się uruchomić i wtedy wyświetli się 'test2'. Tak że, gdy mówisz, że tylko 'test1' się pokaże, to nie bierzesz pod uwagę, co się dzieje po zakończeniu skryptu. I to, co napisałeś, że tylko 'test2' się wyświetli, też nie jest prawdą, bo konstruktor musi być wywołany, kiedy robi się obiekt. Zrozumienie tych wszystkich spraw jest naprawdę ważne, by dobrze zarządzać danymi w aplikacjach, zwłaszcza w większych projektach, gdzie jest masa obiektów i różne interakcje między nimi.

Pytanie 35

Które z poniższych twierdzeń najlepiej opisuje klasę Owoc zdefiniowaną w PHP i przedstawioną w kodzie?

class Owoc {
  public $nazwa;
  private $kolor;
  function set_nazwa($nazwa) {
    $this->nazwa = $nazwa;
  }
}
A. Zawiera dwa pola oraz jedną metodę, pole kolor ma widoczność ograniczoną jedynie do metod klasy
B. Zawiera jedno pole oraz dwie metody, przy czym jedna z metod ma zakres prywatny
C. Zawiera dwa pola oraz jeden konstruktor, oba pola mają widoczność ograniczoną tylko do metod klasy
D. Zawiera dwa pola oraz jedną metodę, pole nazwa ma widoczność ograniczoną tylko do metod klasy
Błędne odpowiedzi wynikają z niezrozumienia zakresów widoczności oraz struktury klasy w PHP. Klasa Owoc ma dwa pola: $nazwa i $kolor. Pole $nazwa jest publiczne, co oznacza, że jest dostępne z dowolnego miejsca, które posiada instancję klasy. Natomiast $kolor jest prywatne, co ogranicza jego dostępność tylko do metod wewnątrz klasy. To kluczowy aspekt programowania obiektowego, gdzie stosowanie modyfikatora private zapewnia, że dane nie mogą być modyfikowane bezpośrednio z zewnątrz, chroniąc integralność obiektu. W konstrukcji tej klasy znajduje się również tylko jedna metoda: set_nazwa, która służy do ustawiania wartości pola $nazwa. Brak jest tutaj konstruktora, co wyklucza błędną odpowiedź sugerującą jego obecność. Konstruktor w PHP definiuje się jako funkcję __construct i służy do inicjalizacji obiektu przy jego tworzeniu. Każda z niepoprawnych odpowiedzi błędnie interpretuje strukturę i dostępność elementów klasy. Często popełnianym błędem jest mylenie zakresów widoczności pola publicznego i prywatnego, oraz brak rozpoznania i zastosowania dobrych praktyk, takich jak enkapsulacja, która jest jednym z filarów programowania obiektowego, mającym na celu ukrycie wewnętrznej implementacji oraz ochronę danych przed nieautoryzowanym dostępem.

Pytanie 36

Pole insert_id zdefiniowane w bibliotece MySQLi języka PHP może być wykorzystane do

A. pobrania najwyższego indeksu bazy, aby po jego zwiększeniu wstawić pod niego dane
B. otrzymania kodu błędu, gdy wstawienie wiersza się nie powiodło
C. uzyskania id ostatnio dodanego wiersza
D. uzyskania pierwszego dostępnego indeksu bazy, tak, aby można było pod nim wstawić nowe dane
Każda z niepoprawnych odpowiedzi zawiera błędne założenia dotyczące funkcji insert_id w kontekście MySQLi. Odpowiedź, która sugeruje, że pole to może być użyte do otrzymania kodu błędu w przypadku niepowodzenia procesu wstawiania wiersza, jest myląca, ponieważ kod błędu jest uzyskiwany za pomocą innych mechanizmów, takich jak mysqli_errno() oraz mysqli_error(). Takie podejście może prowadzić do nieporozumień w zarządzaniu błędami w bazach danych, co jest istotnym aspektem programowania. Ponadto, pomysł, że insert_id może być używany do pobrania najwyższego indeksu bazy, aby po jego inkrementacji wstawić nowe dane jest nieprawidłowy, ponieważ insert_id nie działa w ten sposób; identyfikator jest automatycznie generowany przez bazę danych w momencie dodawania rekordu. Takie podejście może prowadzić do trudności w synchronizacji danych i jest niezgodne z zasadami dobrego projektowania baz danych. Również koncepcja pozyskiwania pierwszego wolnego indeksu jest błędna; w praktyce nie jest zalecane ręczne zarządzanie indeksami, ponieważ może to prowadzić do konfliktów i naruszenia integralności danych. MySQL automatycznie zarządza numerami ID, co jest bardziej efektywne i zmniejsza ryzyko błędów. Wreszcie, stosując te nieprawidłowe koncepcje, programiści mogą napotkać trudności w utrzymaniu kodu i jego rozwoju, co może zwiększyć złożoność aplikacji.

Pytanie 37

Globalne zmienne do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION stanowią część języka

A. JavaScript
B. Perl
C. C#
D. PHP
Odpowiedź PHP jest prawidłowa, ponieważ $_COOKIE i $_SESSION to superglobalne tablice w tym języku, które są wykorzystywane do zarządzania danymi sesyjnymi oraz ciasteczkami. $_COOKIE umożliwia przechowywanie danych na komputerze użytkownika w formie ciasteczek, które mogą być odczytywane przez serwer przy każdym żądaniu. Ciasteczka mogą być używane do identyfikacji użytkownika, zapamiętywania preferencji lub sesji. Przykładowe zastosowanie to np. pamiętanie, czy użytkownik jest zalogowany oraz jakie preferencje dotyczące wyświetlania treści ustawił. Z kolei $_SESSION jest używane do przechowywania danych sesji na serwerze, co zapewnia większe bezpieczeństwo, ponieważ dane nie są również dostępne po stronie klienta. Przykładem zastosowania $_SESSION jest przechowywanie informacji o użytkowniku, takich jak jego identyfikator, które mogą być używane do autoryzacji w różnych częściach aplikacji. W obu przypadkach, przy użyciu tych mechanizmów, programiści muszą pamiętać o optymalizacji wydajności oraz przestrzeganiu zasad ochrony prywatności użytkowników, co jest kluczowe w kontekście aktualnych regulacji dotyczących danych osobowych.

Pytanie 38

Który z komentarzy przedstawia opis działania funkcji zdefiniowanej w języku PHP?

A. /* Funkcja zwraca mniejszą z dwóch podanych wartości, a w przypadku ich równości zwraca -1 */
B. /* Funkcja zwraca większą z dwóch podanych wartości, a w przypadku ich równości zwraca -1 */
C. /* Funkcja zwraca mniejszą z dwóch podanych wartości, a w przypadku ich równości zwraca wartość $a */
D. /* Funkcja zwraca większą z dwóch podanych wartości, a w przypadku ich równości zwraca wartość $a */
W analizowanych odpowiedziach można zauważyć kilka nieporozumień dotyczących działania funkcji. Niektóre propozycje podają informację, że funkcja zwraca wartość niższą z dwóch podanych argumentów, co jest absolutnie błędne. Funkcja jest zaprojektowana tak, aby zawsze zwracała wartość wyższą, co jest kluczowym aspektem jej działania. Inne odpowiedzi wskazują, że w przypadku równości funkcja zwraca wartość $a, co także jest niezgodne z kodem źródłowym. W rzeczywistości, zgodnie z implementacją, zwracana jest wartość -1, co jest istotne, ponieważ wskazuje na brak różnicy między argumentami. Tego rodzaju pomyłki mogą wynikać z nieścisłości w interpretacji warunków logicznych. Ważne jest, aby przy analizie funkcji dokładnie zwracać uwagę na każdy element kodu, aby nie przeoczyć istotnych szczegółów. Przykładowo, błędne rozumienie tego, co oznacza 'wyższa' wartość w kontekście porównania, może prowadzić do złych wniosków w dalszym programowaniu, w szczególności w funkcjach, które bazują na porównaniach. Dlatego tak istotne jest, aby korzystać z praktyk kodowania, które zapewniają jasność i przejrzystość działania funkcji.

Pytanie 39

Która z poniższych funkcji PHP służy do ładowania pliku z serwera?

A. parse_str()
B. echo()
C. include()
D. mysqli_connect()
Funkcja <code>include()</code> w PHP jest używana do ładowania i wstawiania zawartości jednego pliku PHP do innego. Jest to niezwykle przydatne, gdy pracujemy z wieloma modułami w aplikacji i chcemy zorganizować kod w bardziej zrozumiały sposób. Korzystanie z <code>include()</code> pozwala na ponowne użycie tego samego kodu w wielu miejscach, co jest zgodne z zasadą DRY (Don't Repeat Yourself). Dzięki temu, jeśli mamy wspólną część kodu, jak np. nagłówek strony, możemy umieścić ją w osobnym pliku i dołączyć tam, gdzie jest to potrzebne. To nie tylko oszczędza czas, ale także ułatwia utrzymanie kodu. W przypadku błędów, <code>include()</code> generuje ostrzeżenie, ale nie zatrzymuje wykonywania skryptu, co może być przydatne w niektórych sytuacjach. Z mojego doświadczenia wynika, że jest to jedna z podstawowych funkcji, z którą warto się zapoznać na początku nauki PHP.

Pytanie 40

Która funkcja języka PHP służy do zapisu danych do pliku?

A. fread()
B. fwrite()
C. fgets()
D. readfile()
W tym pytaniu chodzi konkretnie o funkcję, która służy do zapisu danych do pliku, a nie tylko do jego odczytu. W PHP operacje na plikach są dość podobne do tego, co spotyka się w innych językach, ale łatwo się pomylić, bo nazwy funkcji są zbliżone i wszystkie kręcą się wokół plików. Z mojego doświadczenia często pojawia się takie myślenie: skoro funkcja działa na pliku, to pewnie można jej użyć „do wszystkiego”. Niestety tak to nie działa. Przykładowo fgets() służy do odczytywania pojedynczej linii z pliku. Używa się jej najczęściej w pętli, żeby czytać plik linia po linii, np. przy przetwarzaniu plików tekstowych lub logów. Funkcja ta pobiera dane z pliku do pamięci programu, ale niczego nie zapisuje z powrotem. Dlatego wybór jej jako odpowiedzi sugeruje pomylenie kierunku operacji: zamiast myślenia „chcę zapisać”, jest myślenie „chcę coś zrobić z plikiem” – za mało precyzyjne jak na programistę. Podobnie fread() też zajmuje się wyłącznie odczytem, tyle że w sposób bardziej ogólny: czyta określoną liczbę bajtów z pliku. To świetne narzędzie, gdy potrzebujemy wczytać cały plik binarny albo większy fragment danych. Nadal jednak jest to tylko odczyt. Jeśli ktoś wybiera tę funkcję, zwykle wynika to z tego, że kojarzy ją jako „główne API do plików”, ale nie zwraca uwagi na to, że nazwa zawiera „read”, czyli czytanie. readfile() to jeszcze inna historia: ta funkcja czyta plik i natychmiast wysyła jego zawartość do wyjścia (najczęściej do przeglądarki). Używa się jej przy serwowaniu statycznych plików, pobieraniu załączników, prostych mechanizmach downloadu. Ona w ogóle niczego nie zapisuje do pliku, tylko „czyta i wypluwa”. Wybór tej funkcji często wynika z intuicji, że skoro coś „robi z plikiem” i jest wygodne, to może też służyć do zapisu. Niestety, nie. Merytorycznie wszystkie te funkcje działają tylko w jednym kierunku: z pliku do programu (lub do przeglądarki). Do zapisu potrzebna jest funkcja, która bierze dane z programu i umieszcza je w pliku, i właśnie tym zajmuje się fwrite(). Rozróżnianie funkcji odczytu i zapisu to podstawa pracy z plikami w PHP i w ogóle w programowaniu webowym, bo od tego zależy, czy dane naprawdę zostaną zapisane na serwerze, czy tylko gdzieś chwilowo w pamięci.