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: 10 maja 2026 12:56
  • Data zakończenia: 10 maja 2026 13:12

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Po wykonaniu poniższego kodu PHP, w zmiennej $napis znajduje się tekst:

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. gr
B. gramo
C. og
D. ogram
Wybór odpowiedzi 'gr' lub 'og' oraz 'ogram' jest wynikiem nieporozumienia dotyczącego działania funkcji substr() w PHP. Funkcja ta nie zwraca pierwszych kilku znaków z łańcucha, lecz podciąg zaczynający się od określonego indeksu. W przypadku odpowiedzi 'gr', wydaje się, że koncentrujesz się na pierwszych dwóch znakach od momentu, gdy substr() zaczyna od indeksu 3, co jest błędne. Indeks 3 w łańcuchu 'Programowanie w PHP' wskazuje na literę 'g', a nie zawiera żadnych liter przed nią. Z kolei odpowiedź 'og' pomija literę 'r', co również jest błędne. Natomiast wybór 'ogram' może wynikać z mylnego przekonania, że substr() zwraca więcej znaków, niż rzeczywiście to robi. Funkcja substr() działa na zasadzie podawania precyzyjnych wartości, które określają, od którego znaku zacząć i ile znaków wyodrębnić. Dlatego kluczowe jest zrozumienie indeksowania w PHP oraz tego, jak funkcja substr() interpretuje te wartości. Zrozumienie tych zasad jest istotne, zwłaszcza przy pracy z danymi tekstowymi, gdzie precyzyjne operacje są niezbędne do poprawnego przetwarzania i manipulacji łańcuchami znaków. Warto także zwrócić uwagę na dokumentację PHP, aby lepiej poznać inne parametry i możliwości funkcji substr() oraz jej zastosowania w kontekście programowania webowego. Zastosowanie takich funkcji w praktyce pozwala na bardziej efektywne zarządzanie danymi, co jest kluczowe w projektach programistycznych.

Pytanie 2

Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy. Działaniem 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. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich.
B. kolejnymi liczbami od 0 do 9 i wypisanie ich.
C. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych.
D. kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych.
Niektóre odpowiedzi na to pytanie zawierają błędne koncepcje dotyczące sposobu, w jaki działa kod PHP. Na przykład, jedna z odpowiedzi sugeruje, że kod wypełni tablicę kolejnymi liczbami od -100 do 100, co jest błędne, ponieważ kod generuje losowe wartości, a nie sekwencyjne. Kolejna błędna odpowiedź sugeruje, że kod wypełnia tablicę liczbami od 0 do 9, co jest niezgodne z prezentowanym kodem, w którym liczby są generowane losowo i mogą mieć wartość ujemną. Wreszcie, jedna z odpowiedzi mówi, że kod wypisze tylko wartości dodatnie, co jest nieprawidłowe, ponieważ kod wypisuje tylko wartości ujemne. Zrozumienie, jak działa ten konkretny fragment kodu, jest ważne, ale równie ważne jest zrozumienie, dlaczego inne odpowiedzi są nieprawidłowe. Pomaga to zrozumieć, jakie są typowe pułapki i błędne podejścia w programowaniu PHP i jak ich unikać w przyszłości.

Pytanie 3

Wskaż wynik wykonania skryptu napisanego w języku PHP

<?php
$tablica = array(10 => "Perl", 14 => "PHP", 20 => "Python", 22 => "Pike");
asort($tablica);
print("<pre>");
print_r($tablica);
print("</pre>");
?>
A
Array
(
    [14] => PHP
    [10] => Perl
    [22] => Pike
    [20] => Python
)
B
Array
(
    [0] => PHP
    [1] => Perl
    [2] => Pike
    [3] => Python
)
C
Array
(
    [0] => Python
    [1] => Pike
    [2] => Perl
    [3] => PHP
)
D
Array
(
    [10] => Perl
    [14] => PHP
    [20] => Python
    [22] => Pike
)
A. D.
B. B.
C. C.
D. A.
Nieźle to ogarnąłeś z tym skryptem w PHP i funkcją asort(). Fajnie, że rozumiesz, jak działa ta tablica asocjacyjna z czterema elementami. Widzisz, asort() sortuje wartości, ale nie zmienia kluczy, co jest super przydatne. Po wykonaniu tej funkcji dostajemy na przykład: `[14] => PHP`, `[10] => Perl`, `[22] => Pike`, `[20] => Python`. Zrozumienie tego, jak to działa, naprawdę pomaga, gdy tworzysz bardziej skomplikowane aplikacje, które muszą porządkować dane. Polecam też zerknąć na inne funkcje sortujące w PHP, bo każda z nich ma swój styl i może znacznie ułatwić Ci życie jako programiście.

Pytanie 4

Jakie możliwości daje funkcja phpinfo()?

A. analizowanie kodu PHP
B. uruchomienie kodu w języku PHP
C. zweryfikowanie wartości zmiennych użytych w kodzie PHP
D. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
Analizując odpowiedzi, można zauważyć, że niektóre z nich mogą wydawać się logiczne, ale są mylące w kontekście działania funkcji phpinfo(). Na przykład, debugowanie kodu PHP to proces, który wymaga narzędzi takich jak Xdebug, które umożliwiają śledzenie wykonania skryptów, a nie prostego wyświetlania informacji konfiguracyjnych. Również zainicjowanie kodu w języku PHP nie jest właściwym opisem tej funkcji, ponieważ phpinfo() nie służy do uruchamiania skryptów, lecz do prezentacji stanu środowiska PHP. Kolejnym błędnym podejściem jest sądzenie, że phpinfo() może sprawdzić wartości zmiennych użytych w kodzie PHP – w rzeczywistości, funkcja ta nie ma na celu monitorowania wartości zmiennych, lecz skupia się na ogólnych informacjach o systemie. Użytkownicy często mylą funkcje diagnostyczne z funkcjami informacyjnymi, co prowadzi do nieporozumień w zakresie ich zastosowania. Kluczowym aspektem jest zrozumienie, że phpinfo() to narzędzie do zbierania informacji o konfiguracji, a nie do interakcji z kodem źródłowym. Ważne jest również, aby pamiętać o bezpieczeństwie, ponieważ publiczne udostępnienie wyników phpinfo() może narazić serwer na ataki, ujawniając szczegóły dotyczące jego konfiguracji. Zrozumienie tych różnic jest kluczowe dla prawidłowego korzystania z PHP i zarządzania aplikacjami w tym języku.

Pytanie 5

Ile razy zostanie wykonana pętla przedstawiona w kodzie PHP?

for($i = 0; $i < 25; $i += 5) { ...... }
A. 25
B. 26
C. 0
D. 5
Niepoprawne odpowiedzi mogą wynikać z nieporozumienia dotyczącego sposobu, w jaki pętla for działa oraz jak obliczane są iteracje. W przypadku odpowiedzi mówiących o zerowej liczbie iteracji, można pomyśleć, że warunek $i < 25 nie pozwala na żadną iterację, co jest mylne. Pętla zaczyna się od 0 i natychmiast wchodzi w pierwszą iterację, dlatego w rzeczywistości zawsze jest przynajmniej jedna iteracja, gdy warunek jest spełniony. Z kolei odpowiedzi wskazujące na 25 lub 26 iteracji mogą wynikać z błędnego rozumienia wzrostu zmiennej $i o 5 w każdej iteracji. W rzeczywistości mamy do czynienia z pięcioma krokami, a więc 25 nie jest osiągane jako wartość iteracji, lecz granica, która kończy pętlę po ostatniej iteracji na wartości 20, a przed osiągnięciem 25. Programiści często mylą liczbę iteracji z końcowym wynikiem zmiennej. Kluczowe jest, aby w pełni zrozumieć, jak zdefiniowane są warunki i jak zmieniają się wartości zmiennych w każdej iteracji, aby unikać takich błędów. Zastosowanie pętli for jest szerokie, od przetwarzania danych po iteracje w strukturach danych, a zrozumienie liczby iteracji jest fundamentalne dla pisania efektywnego i poprawnego kodu.

Pytanie 6

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";
A. mysqli_query($zapytanie)
B. mysqli_fetch_array($zapytanie)
C. mysqli_num_fields($zapytanie)
D. mysqli_free_result($zapytanie)
Funkcja mysqli_fetch_array($zapytanie) jest używana do pobierania wyników zapytania SQL w formie tablicy asocjacyjnej lub indeksowanej. W kontekście podanego kodu, po wykonaniu zapytania SELECT do bazy danych, wyniki są zwracane jako zasób, który musi być przetworzony. Mysqli_fetch_array pozwala na iteracyjne przetwarzanie każdego wiersza z zestawu wyników, co umożliwia dostęp do poszczególnych wartości pól za pomocą indeksów lub kluczy. Jest to przydatne w sytuacjach, gdzie dane muszą być wyświetlane lub przetwarzane w pętli, jak w przykładowym kodzie. Tablica zwracana przez mysqli_fetch_array może zawierać pola zarówno z indeksami numerycznymi, jak i nazwami kolumn, co daje elastyczność w dostępie do danych. Zgodnie z dobrymi praktykami programistycznymi, zawsze należy sprawdzić, czy zapytanie zostało wykonane poprawnie, zanim zacznie się przetwarzać jego wyniki, oraz zwolnić pamięć po zakończeniu przetwarzania wyników. Stosowanie odpowiednich mechanizmów obsługi błędów i zabezpieczeń, takich jak przygotowane zapytania, jest również kluczowe dla bezpieczeństwa aplikacji.

Pytanie 7

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. PHP
B. AJAX
C. XML
D. VBScript
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 8

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. Anna
B. Krzysztof
C. Aleksandra
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 9

W PHP typ float oznacza

A. typ łańcuchowy
B. typ logiczny
C. typ zmiennoprzecinkowy
D. typ całkowity
Zrozumienie różnych typów danych w PHP jest kluczowe dla programistów, a mylenie typów może prowadzić do błędnych założeń. W przypadku odpowiedzi sugerujących, że float reprezentuje typ logiczny, całkowity lub łańcuchowy, warto przyjrzeć się definicjom tych typów. Typ logiczny w PHP ogranicza się do wartości prawda/fałsz (true/false), co jest zupełnie inną koncepcją niż liczby zmiennoprzecinkowe. Typ całkowity, z kolei, dotyczy liczb całkowitych, które nie mają części dziesiętnej, co wyklucza możliwość reprezentowania wartości takich jak 1.5 czy 3.14. Typ łańcuchowy oznacza ciągi znaków, które również nie mogą być używane do reprezentacji liczby zmiennoprzecinkowej. Tego rodzaju pomyłki często wynikają z niezrozumienia podstawowych różnic między typami danych oraz ich zastosowaniem. W praktyce, używanie niewłaściwego typu danych, jak np. całkowity zamiast zmiennoprzecinkowego, może prowadzić do niepoprawnych obliczeń w aplikacjach. Na przykład, obliczając średnią ocen studentów, stosowanie typu całkowitego dla wartości, które naturalnie są liczbami zmiennoprzecinkowymi, doprowadzi do utraty precyzji, co z czasem może mieć istotny wpływ na wyniki analiz. Kluczowe jest, aby programiści dokładnie rozumieli, jak różne typy danych działają w PHP i jak ich niewłaściwe użycie wpływa na działanie aplikacji.

Pytanie 10

Ile razy zostanie wykonana pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w trakcie działania pętli?
for ($i = 0; $i <= 10; $i+=2) { .... }

A. 10
B. 6
C. 5
D. 0
Wybór błędnych odpowiedzi wynika z nieprawidłowego zrozumienia działania pętli for oraz sposobu, w jaki zostają liczone iteracje. Odpowiedzi takie jak 0, 5 czy 10 są oparte na mylących założeniach. Na przykład, odpowiedzi 0 i 10 mogą sugerować, że pętla nie wykonuje żadnych iteracji lub, że wykonuje ich zbyt wiele, co jest sprzeczne z rzeczywistością. Pętla for, jak w tym przypadku, zaczyna od 0 i kończy na 10, a krok wynosi 2. Zmiana wartości $i przy każdym przejściu pętli jest kluczowym elementem do zrozumienia. Jeśli więc zmienna nie jest zmieniana, nie osiągnie ona wartości końcowej prawidłowo. Typowym błędem jest także myślenie o warunkach w sposób nieprecyzyjny; w tym wypadku warunek $i <= 10 jest spełniony dla wartości 10, co może mylić. W praktyce, programiści powinni zawsze dokładnie analizować zakres iteracji, aby uniknąć błędnych założeń. To zrozumienie jest fundamentalne, aby pisać wydajny i bezpieczny kod, stosując się do najlepszych praktyk programistycznych.

Pytanie 11

Plik konfiguracyjny, który umożliwia ustalenie parametrów PHP dla całego serwera, to

A. config.inc.php
B. httpd.conf
C. my.ini
D. php.ini
Plik konfiguracyjny php.ini jest kluczowym elementem w konfiguracji środowiska PHP na serwerze. Umożliwia on zdefiniowanie różnorodnych ustawień, które mają wpływ na działanie aplikacji PHP. W pliku tym można ustawić m.in. poziom raportowania błędów, limit czasu wykonywania skryptów, wielkość pamięci, dostępne rozszerzenia oraz wiele innych parametrów. Dla przykładu, można zdefiniować dyrektywę 'memory_limit', która określa maksymalną ilość pamięci, jaką może używać jeden skrypt PHP. Dzięki temu administratorzy serwera mają pełną kontrolę nad środowiskiem uruchomieniowym, co jest niezwykle istotne w kontekście bezpieczeństwa i wydajności aplikacji. Plik php.ini jest zgodny ze standardami PHP i jest dokumentowany w oficjalnej dokumentacji, co ułatwia jego poprawne skonfigurowanie. Bez odpowiedniego dostosowania ustawień w php.ini, aplikacje mogą napotykać na problemy, takie jak przekroczenie limitu pamięci czy niewłaściwe raportowanie błędów, co może prowadzić do trudności w diagnozowaniu problemów.

Pytanie 12

W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element

A. Janek z następnym numerem indeksu
B. im z następnym numerem indeksu
C. Janek o indeksie im
D. im z indeksem Janek
W analizowanym pytaniu niepoprawne odpowiedzi wskazują różne błędne koncepcje dotyczące działania PHP i struktury tablicy $_POST. Przede wszystkim, w systemach opartych na PHP, po przesłaniu formularza, wartości pól formularza są przekazywane do tablicy $_POST, gdzie klucze odpowiadają nazwom pól w formularzu, a ich wartości odpowiadają użytkownikowi wprowadzonym danym. Odpowiedzi sugerujące, że "im" może mieć inny typ indeksu, jak "Janek" lub numer indeksu, są nieprecyzyjne i mylące. Klucz w tablicy $_POST to nazwa pola, co oznacza, że jest stały i niezmienny, niezależnie od wartości, którą użytkownik wprowadza. Ponadto, odpowiedzi, które sugerują istnienie "kolejnego numeru indeksu", mogą prowadzić do błędnego rozumienia konceptu tablic asocjacyjnych w PHP. Tablice asocjacyjne działają na zasadzie klucz-wartość, co oznacza, że klucz (w tym wypadku "im") jest zawsze powiązany z jedną wartością (tu: "Janek"). Błędne myślenie może również wynikać z nieznajomości podstaw PHP, gdzie wiele osób myli pojęcia klucza i wartości lub nie rozumie, że klucz jest stały i determinowany przez atrybut "name" w formularzu, a nie przez wartość wprowadzoną przez użytkownika. Zrozumienie tej zasadniczej różnicy jest kluczowe dla prawidłowego przetwarzania danych w formularzach oraz budowy bezpiecznych aplikacji webowych.

Pytanie 13

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. wypisanie liczby nieparzystej
B. zwrócenie wartości 1, gdy liczba jest parzysta
C. wypisanie liczby parzystej
D. zwrócenie wartości 0, gdy liczba jest parzysta
Funkcja w języku PHP jest zapisana w taki sposób że przyjmuje jeden argument liczba i sprawdza czy jest on parzysty. Używa operatora modulo % który zwraca resztę z dzielenia. Jeśli liczba podzielona przez 2 daje resztę równą 0 oznacza to że jest parzysta. W takim przypadku funkcja zwraca wartość 1. W przeciwnym razie czyli gdy liczba jest nieparzysta funkcja zwraca 0. Takie podejście jest częstym wzorcem w programowaniu gdyż pozwala na szybkie i efektywne sprawdzenie parzystości liczby. Stosowanie operatora modulo jest standardem w wielu językach programowania dzięki czemu kod jest zrozumiały i łatwo go przenieść między różnymi platformami. W praktyce takie funkcje mogą być używane w algorytmach gdzie konieczne jest filtrowanie danych na podstawie parzystości lub innych podobnych kryteriów. Dobre praktyki w kodowaniu w PHP obejmują również jasne nazywanie funkcji i zmiennych co poprawia czytelność i utrzymanie kodu. Można także zastanowić się nad rozszerzeniem funkcji o dodatkowe sprawdzania lub logikę w zależności od potrzeb projektu.

Pytanie 14

Aby zweryfikować konfigurację w pliku php.ini, można uruchomić skrypt PHP, który zawiera zapis

A. <?php ini_set(); ?>
B. <?php phpinfo(); ?>
C. <?php echo phpversion(); ?>
D. <?php phpcredits(); ?>
Odpowiedź <?php phpinfo(); ?> jest poprawna, ponieważ funkcja phpinfo() generuje szczegółowy raport na temat konfiguracji PHP, w tym informacje o zainstalowanych rozszerzeniach, wersji PHP, oraz ustawieniach w pliku php.ini. W praktyce, ta funkcja jest niezwykle przydatna przy diagnozowaniu problemów związanych z konfiguracją serwera, ponieważ dostarcza pełen wgląd w aktualne ustawienia środowiska, co pozwala na szybkie zidentyfikowanie ewentualnych niezgodności. Przykładem zastosowania może być sytuacja, w której programista chce sprawdzić, czy określone rozszerzenie PHP jest aktywne lub jakie są wartości domyślne dla różnych dyrektyw, takich jak memory_limit czy upload_max_filesize. Dobrą praktyką w sytuacjach produkcyjnych jest ograniczenie dostępu do skryptów wywołujących phpinfo(), aby nie ujawniać wrażliwych informacji o serwerze osobom nieupoważnionym. Myśląc o bezpieczeństwie aplikacji, warto usunąć takie skrypty po zakończeniu diagnostyki.

Pytanie 15

W języku PHP nie można zrealizować

A. przetwarzania danych z formularzy
B. zmiany dynamicznej zawartości strony HTML w przeglądarce
C. tworzenia dynamicznej treści strony
D. obróbki danych przechowywanych w bazach danych
Przetwarzanie danych formularzy to jedna z kluczowych funkcji, które PHP realizuje na co dzień. PHP jest zaprojektowane do obsługi danych przesyłanych przez formularze HTML, co umożliwia dynamiczne przetwarzanie informacji wprowadzonych przez użytkowników. W momencie, gdy użytkownik wysyła formularz, PHP odbiera te dane i może je przetwarzać, walidować oraz zapisywać do bazy danych lub wykorzystywać w inny sposób, co czyni tę odpowiedź niepoprawną. Generowanie dynamicznej zawartości strony to kolejna funkcjonalność, którą PHP realizuje z powodzeniem. Dzięki PHP można tworzyć strony internetowe, które zmieniają się w zależności od różnych czynników, takich jak dane z bazy danych, aktualna godzina czy sesja użytkownika. PHP dynamicznie generuje HTML, który następnie jest wysyłany do przeglądarki. Wreszcie, PHP doskonale radzi sobie z przetwarzaniem danych zgromadzonych w bazach danych. Język ten może łączyć się z różnymi systemami zarządzania bazami danych, takimi jak MySQL, PostgreSQL czy SQLite, umożliwiając wykonywanie zapytań SQL oraz operacji na danych. Dlatego odpowiedzi dotyczące przetwarzania danych formularzy, generowania dynamicznej zawartości oraz interakcji z bazami danych są błędne, ponieważ PHP jest w stanie zrealizować te zadania z dużą skutecznością.

Pytanie 16

Aby aplikacja PHP mogła nawiązać połączenie z bazą danych, konieczne jest najpierw użycie funkcji o nazwie

A. mysqli_select_db
B. mysqli_close
C. mysqli_connect
D. mysqli_create_db
Funkcja mysqli_connect jest kluczowym elementem w procesie komunikacji aplikacji PHP z bazą danych. Jej głównym zadaniem jest nawiązanie połączenia z serwerem MySQL, co jest niezbędne, zanim jakiekolwiek operacje na danych mogą zostać przeprowadzone. Wywołując tę funkcję, należy podać odpowiednie parametry: nazwę hosta (zazwyczaj 'localhost'), nazwę użytkownika, hasło oraz nazwę bazy danych, z którą chcemy pracować. Na przykład: $conn = mysqli_connect('localhost', 'user', 'password', 'database');. Dobrą praktyką jest również sprawdzenie, czy połączenie zostało nawiązane poprawnie, co można zrobić za pomocą odpowiednich warunków. W przypadku ewentualnych błędów podczas nawiązywania połączenia, funkcja ta zwraca wartość false, co umożliwia dalsze działania naprawcze. Dodatkowo, w kontekście bezpieczeństwa, warto stosować techniki takie jak przygotowywanie zapytań (prepared statements), aby zminimalizować ryzyko ataków typu SQL Injection. Właściwe nawiązanie połączenia z bazą danych jest fundamentem każdej aplikacji webowej opartej na PHP.

Pytanie 17

W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. zastosować pętlę z poleceniem mysqli_fetch_row
B. użyć polecenia mysql_fetch
C. zaindeksować zmienną tab, tab[0] to pierwsze imię
D. wyświetlić zmienną $db
Odpowiedź, która zakłada zastosowanie pętli z poleceniem mysqli_fetch_row, jest poprawna, ponieważ po wykonaniu zapytania do bazy danych za pomocą mysqli_query, otrzymujemy wynik w postaci zestawu rekordów, który musimy przetworzyć. Funkcja mysqli_fetch_row pozwala na iteracyjne pobieranie wierszy z tego zestawu, co jest niezbędne do wyświetlenia wszystkich imion osób, które spełniają warunek wieku poniżej 18 lat. Przykładowy kod do iteracji może wyglądać tak: while($wiersz = mysqli_fetch_row($tab)) { echo $wiersz[0]; } W ten sposób każda iteracja w pętli wyświetli pierwszą kolumnę (imie) z każdego wiersza rezultatu. Tego typu podejście jest zgodne z dobrymi praktykami, ponieważ pozwala na efektywne zarządzanie pamięcią i ogranicza ryzyko przeciążenia systemu, szczególnie w przypadku dużych zbiorów danych. Ważne jest, aby pamiętać, że połączenie z bazą danych i zapytania powinny być zawsze odpowiednio zamykane i zabezpieczane przed atakami, co jest istotne w kontekście bezpieczeństwa aplikacji.

Pytanie 18

Zdefiniowano funkcję w języku PHP:

function policz($Z) { 
while($Z < 5) {
$Z += 2 * $Z + 1;
}
return $Z;
}
Funkcja policz została wywołana z parametrem $Z = 1. Jaki rezultat zostanie zwrócony?
A. 4
B. 1
C. 13
D. 7
W przypadku analizy odpowiedzi 7, 4 i 1 można zauważyć, że w każdym z tych przypadków nie uwzględniono pełnych obliczeń zachodzących w pętli while. Odpowiedź 7 może sugerować, że po pierwszej iteracji pętli przyjęto, że $Z przestaje być aktualizowane w kolejnych krokach, co jest nieprawidłowe. W rzeczywistości, wartości $Z są stale aktualizowane w każdej iteracji pętli, co prowadzi do znacznie większych wyników. Z kolei odpowiedź 4 pomija fakt, że po pierwszym obliczeniu $Z wynosi 4, ale nie jest to wartość końcowa, ponieważ pętla nie kończy się, dopóki warunek jest spełniony. Ostatecznie, odpowiedź 1 ignoruje całkowicie logikę funkcji i powtarzanie obliczeń, co prowadzi do błędnych założeń. Często przy takich zadaniach błędy myślowe wynikają z niewłaściwego zrozumienia działania pętli oraz mechanizmu aktualizacji zmiennej. Kluczowe jest, aby dokładnie przeanalizować każdy krok pętli i unikać pośpiechu w obliczeniach. W programowaniu należy zwracać uwagę na każde wyrażenie oraz jego konsekwencje dla dalszego działania algorytmu, aby nie przeoczyć istotnych zmian zachodzących w danych.

Pytanie 19

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. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
B. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
C. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
D. Kolejnymi liczbami od 0 do 9 i wypisanie ich
Analizując błędne odpowiedzi, warto zauważyć, że niektóre z nich sugerują nieprawidłowe zrozumienie działania funkcji rand() i pętli for w PHP. Kod pokazuje, że pętla for jest używana do iteracji 10 razy, co oznacza, że tablica będzie wypełniona 10 wartościami, a nie 100. Funkcja rand(-100,100) generuje liczby z przedziału od -100 do 100, a nie tylko dodatnie czy kolejne liczby, co wyklucza możliwość wypełnienia tablicy kolejnymi liczbami od 0 do 9 czy od -100 do 100. Dalsze nieporozumienia mogą wynikać z błędnego zrozumienia instrukcji warunkowej w pętli foreach, która wyświetla tylko wartości ujemne, a nie dodatnie. Częste błędy to także założenie, że wszystkie elementy są przetwarzane jednakowo bez sprawdzenia warunku. Dobre praktyki programistyczne wymagają uważnego czytania i analizy kodu, aby zrozumieć jego logikę. Zrozumienie mechaniki działania pętli i instrukcji warunkowych jest kluczowe w programowaniu i często stanowi podstawę bardziej zaawansowanych algorytmów. Ostatecznie skuteczne przetwarzanie danych w PHP wymaga dokładnego zrozumienia struktury kodu i jego funkcji, co może być wyzwaniem, jeśli koncepcje te są źle zinterpretowane. Ważne jest, aby programista dokładnie rozumiał, jakie wartości są generowane i które z nich są wyświetlane, aby uniknąć niezamierzonych rezultatów w aplikacji.

Pytanie 20

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. czarny, zielony, niebieski, biały
C. biały, niebieski, zielony, czarny
D. zielony, niebieski, czarny, biały
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 21

Funkcja phpinfo() umożliwia:

A. sprawdzanie wartości zmiennych wykorzystanych w skrypcie PHP
B. inicjowanie skryptu w języku PHP
C. analizowanie kodu PHP pod kątem błędów
D. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
Wiele osób mylnie interpretuje funkcję phpinfo() jako narzędzie służące do debugowania kodu PHP lub sprawdzania wartości zmiennych w skryptach. Jednakże, phpinfo() nie jest zaprojektowane do monitorowania wartości zmiennych ani do analizy błędów w kodzie. Zamiast tego, jej głównym celem jest prezentacja informacji o bieżącej konfiguracji środowiska PHP. Często można spotkać się z przekonaniem, że phpinfo() pozwala na inicjowanie kodu w PHP, co jest zupełnie nieprawidłowe, gdyż funkcja ta nie wykonuje ani nie uruchamia kodu, a jedynie wyświetla dane systemowe. Kolejnym powszechnym błędem jest mylenie phpinfo() z narzędziami do debugowania, takimi jak Xdebug, które rzeczywiście pozwalają na monitorowanie i analizę kodu. Również niektórzy mogą sądzić, że phpinfo() służy do bezpośredniej modyfikacji lub zarządzania ustawieniami PHP, co jest niezgodne z jej funkcjonalnością. Warto podkreślić, że stosowanie phpinfo() w środowisku produkcyjnym może prowadzić do poważnych zagrożeń bezpieczeństwa, gdyż ujawnia wiele szczegółowych informacji, które mogą zostać wykorzystane przez potencjalnych atakujących. Dobrą praktyką jest ograniczenie dostępu do wyników działania phpinfo() oraz jego usunięcie z aplikacji po zakończeniu procesu deweloperskiego.

Pytanie 22

Aby przekształcić tekst „ala ma psa” na „ALA MA PSA”, jaka funkcja PHP powinna być zastosowana?

A. strtoupper('ala ma psa');
B. strtolower('ala ma psa');
C. ucfirst ('ala ma psa');
D. strstr ('ala ma psa');
Funkcja strtoupper w PHP jest używana do konwersji wszystkich liter w danym ciągu znaków na wielkie litery. W kontekście modyfikacji tekstu „ala ma psa” na „ALA MA PSA”, zastosowanie funkcji strtoupper('ala ma psa') jest poprawnym podejściem. Funkcja ta jest częścią standardowej biblioteki PHP i jest szeroko stosowana w projektach, gdzie zachowanie wielkich liter jest kluczowe. Przykład użycia funkcji strtoupper jest prosty: wystarczy przekazać do niej ciąg, który ma zostać przekształcony. Przykładem może być zapis: $text = 'ala ma psa'; $uppercaseText = strtoupper($text); echo $uppercaseText; co wygeneruje wynik ALA MA PSA. Warto zauważyć, że funkcja ta nie zmienia oryginalnego ciągu, lecz zwraca nowy ciąg z przekształconymi literami. Zastosowanie funkcji strtoupper jest szczególnie przydatne w aplikacjach webowych, gdzie formatowanie tekstu może być kluczowe dla zapewnienia spójności danych wyjściowych oraz ich estetyki.

Pytanie 23

Ile razy zostanie wykonana poniższa pętla w PHP?

for($i = 0; $i < 25; $i += 5) { ... }
A. 0
B. 5
C. 25
D. 26
W programowaniu pętle są kluczowymi konstrukcjami kontrolnymi pozwalającymi na wielokrotne wykonywanie kodu. W analizowanym przykładzie mamy do czynienia z pętlą for, która jest jedną z najczęściej używanych, z uwagi na jej elastyczność i czytelność. Pętla ta jest zdefiniowana jako for($i = 0; $i < 25; $i += 5). W tym kontekście błędem jest zakładanie, że pętla wykona 0 iteracji, ponieważ zmienna $i zaczyna od wartości 0 i spełnia warunek $i < 25, co rozpoczyna proces iteracji. Kolejną błędną koncepcją jest myślenie, że pętla wykona 25 lub 26 iteracji. Taki błąd może wynikać z niezrozumienia mechanizmu przyrostu zmiennej iteracyjnej $i. W tym przypadku, przyrost wynosi 5, co oznacza, że wartości przyjmowane przez $i to 0, 5, 10, 15 i 20, zanim warunek pętli przestanie być spełniony. Takie myślenie może prowadzić do nadmiernej ilości iteracji w pętlach, co jest typowym błędem projektowym. Warto zwrócić uwagę na poprawne formułowanie warunków pętli oraz zrozumienie wpływu inkrementacji na liczbę iteracji. Starannie zaplanowane i przemyślane pętle są kluczowe dla efektywności działania programu, a ich niepoprawne zrozumienie prowadzi do błędów, które są trudne do wykrycia i naprawy w większych projektach.

Pytanie 24

Jakie stwierdzenie dotyczące zaprezentowanego kodu jest prawdziwe?

Ilustracja do pytania
A. W zmiennej $a wartość "Ala" zostanie zmieniona na "Ola"
B. Znak kropki "." jest operatorem konkatenacji
C. Znak "=" pełni rolę operatora porównania dwóch zmiennych
D. Zostanie wyświetlony komunikat "OlaA"
Znak kropki w języku PHP pełni rolę operatora konkatenacji łączącego ciągi znaków w jedną całość Jest to kluczowa funkcja przy pracy z danymi tekstowymi pozwalająca na dynamiczne tworzenie ciągów znaków na podstawie różnych zmiennych lub danych wejściowych Przykładowo w przypadku zmiennej $a o wartości Ala i zastosowania $a Ola wynikowym ciągiem staje się AlaOla W praktyce konkatenacja jest często stosowana do generowania złożonych komunikatów lub budowania ścieżek plików w aplikacjach webowych Operator konkatenacji jest również używany w połączeniu z innymi typami danych które mogą być automatycznie przekształcane na ciągi znaków zgodnie z zasadami PHP Konkatenacja jest fundamentalnym elementem interakcji z użytkownikami w interfejsach tekstowych oraz w przetwarzaniu danych wejściowych i wyjściowych Zrozumienie i umiejętność jej stosowania jest kluczowa dla efektywnego programowania w PHP oraz tworzenia dynamicznych i interaktywnych aplikacji webowych z zachowaniem wysokiej jakości kodu i zgodności ze standardami

Pytanie 25

Wskaż równoważną metodę dla instrukcji switch zapisaną w języku PHP?

Ilustracja do pytania
A. A
B. D
C. B
D. C
Switch w PHP to narzędzie, które pomaga kierować działaniem programu w zależności od wartości, i często zamienia się to na wiele if-else, żeby kod był bardziej przejrzysty. Czasami jednak pojawiają się błędne interpretacje logiki warunkowej. W odpowiedzi D, użycie operatora and oznacza, że oba warunki muszą być spełnione naraz, co jest trochę mylące, bo dla zmiennej $liczba przy wartościach 10 i 20 to nie jest za bardzo możliwe. W odpowiedzi A jest po prostu porównanie do 10, co nie pokazuje całego potencjału switch, który może radzić sobie z wieloma przypadkami. Odpowiedź C też ma problem, bo chociaż używa or poprawnie, brakuje jej else, który jest ważny w switch, bo pozwala na zrobienie czegoś, gdy żaden z warunków nie pasuje. Często zapomina się o znaczeniu default w switch, a w if-else to w sumie jest to else. Zrozumienie tych rzeczy jest ważne, żeby pisać czytelny i efektywny kod PHP, szczególnie gdy tworzymy większe aplikacje, bo bez jasnej struktury może to być naprawdę wyzwanie.

Pytanie 26

Pole insert_id zdefiniowane w bibliotece MySQLi w języku PHP może służyć do

A. pobrania pierwszego dostępnego indeksu w bazie, tak aby można było pod nim dodać nowe dane
B. uzyskania id ostatnio dodanego wiersza
C. pobrania najwyższego indeksu z bazy, aby po jego inkrementacji wstawić pod niego dane
D. pozyskania kodu błędu, jeśli proces dodawania wiersza się nie powiódł
Wybór odpowiedzi dotyczących uzyskiwania kodu błędu lub najwyższego/wolnego indeksu bazy jest błędny, ponieważ te koncepcje nie odnoszą się bezpośrednio do funkcji insert_id. Uzyskiwanie kodu błędu w przypadku nieudanej operacji wstawiania jest osobną funkcjonalnością, która nie ma związku z identyfikatorem wstawionego rekordu. Zazwyczaj, aby uzyskać informacje o błędach, programiści korzystają z metod takich jak mysqli_error() lub mysqli_errno(), które dostarczają szczegółowych komunikatów o błędach. Co więcej, idea pobierania najwyższego lub pierwszego wolnego indeksu do wstawienia nowych danych jest myląca. W relacyjnych bazach danych klucze główne, takie jak ID, są zazwyczaj generowane automatycznie przez silnik bazy danych, co eliminuje potrzebę manualnego zarządzania indeksami. Użytkowanie własnoręcznie zarządzanych indeksów może prowadzić do problemów z integralnością danych oraz błędów, takich jak kolizje kluczy. Rekomendowane jest poleganie na automatycznych systemach przypisywania ID, co jest zgodne z zasadami normalizacji baz danych oraz minimalizowania błędów w zarządzaniu danymi.

Pytanie 27

W języku PHP zmienna $_GET jest zmienną

A. predefiniowaną, wykorzystywaną do zbierania wartości formularza po nagłówkach żądania HTTP (dane z formularza nie są widoczne w adresie)
B. utworzoną przez autora strony, używaną do przesyłania danych z formularza przez adres URL
C. zwykłą, utworzoną przez autora witryny
D. predefiniowaną, używaną do przesyłania informacji do skryptów PHP za pośrednictwem adresu URL
Niepoprawne odpowiedzi prowadzą do nieporozumień dotyczących funkcji i konstrukcji zmiennej $_GET. W przeciwieństwie do stwierdzenia, że zmienna ta jest zdefiniowana przez twórcę strony, $_GET jest predefiniowaną zmienną, co oznacza, że jest dostarczana przez PHP jako część jego standardowej biblioteki. Również błędne jest twierdzenie, że dane przekazywane przez $_GET nie są widoczne w adresie URL. W rzeczywistości, jednym z kluczowych elementów działania $_GET jest to, że dane są rzeczywiście dołączane do adresu URL, co czyni je publicznie dostępnymi. Takie podejście może być użyteczne w przypadku, gdy chcemy, aby dane były łatwe do udostępnienia lub w przypadku, gdy chcemy umożliwić użytkownikom zakładanie zakładek na konkretne wyniki wyszukiwania. Niedopuszczalne jest także określanie $_GET jako 'zwykłej' zmiennej, ponieważ jej funkcjonalność jest ściśle związana z interakcją z protokołem HTTP i sposobem, w jaki dane są przesyłane pomiędzy klientem a serwerem. W kontekście aplikacji webowych, kluczowe jest, aby deweloperzy rozumieli nie tylko techniczne aspekty używania $_GET, ale także konsekwencje związane z bezpieczeństwem, takie jak ryzyko ataków XSS (Cross-site scripting) i potrzeba sanitizacji danych, które mogą pochodzić od użytkowników.

Pytanie 28

Pętla while powinna działać tak długo, jak zmienna x będzie przyjmować wartości z otwartego przedziału (-2, 5). Zapis tego warunku w nagłówku pętli przy użyciu języka PHP wygląda następująco

A. ($x > -2) || ($x > 5)
B. ($x < -2) || ($x > 5)
C. ($x > -2) && ($x < 5)
D. ($x == -2) && ($x < 5)
Odpowiedź ($x > -2) && ($x < 5) jest prawidłowa, ponieważ dokładnie odzwierciedla warunki obustronnie otwartego przedziału (-2, 5). W tym przypadku pętla while będzie kontynuować swoje działanie, o ile zmienna x będzie przyjmować wartości większe niż -2 oraz jednocześnie mniejsze niż 5. Jest to zgodne z logiką pętli, która powinna działać tak długo, jak warunki są spełnione. Przykładem zastosowania może być iteracja po elementach tablicy, gdzie chcemy przetwarzać tylko te elementy, które mieszczą się w określonym zakresie. W praktyce, dobre praktyki programistyczne wskazują na użycie logicznych operatorów AND (&&) i OR (||) w sposób, który precyzyjnie definiuje zakresy. W tym przypadku operator AND zapewnia, że oba warunki muszą być spełnione, co jest kluczowe dla poprawności działania pętli. Warto również pamiętać o tym, że w PHP, zmienne powinny być odpowiednio zainicjalizowane i sprawdzane przed użyciem ich w warunkach pętli, aby uniknąć nieprzewidzianych błędów wykonania.

Pytanie 29

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 jedną metodę, pole nazwa ma widoczność ograniczoną tylko do metod klasy
D. Zawiera dwa pola oraz jeden konstruktor, oba pola mają widoczność ograniczoną tylko do metod klasy
Klasa Owoc w języku PHP jest zdefiniowana z dwoma polami: publicznym $nazwa i prywatnym $kolor. Odpowiedź wskazująca, że pole kolor ma ograniczony dostęp tylko do metod klasy, jest prawidłowa, ponieważ zastosowanie modyfikatora private oznacza, że pole to jest dostępne wyłącznie wewnątrz klasy. Jest to dobra praktyka projektowania, gdzie prywatne pola chronią integralność danych, umożliwiając dostęp i modyfikację tylko za pośrednictwem metod klasy. W tym przypadku, metoda set_nazwa pozwala na ustawienie wartości dla pola $nazwa, ale nie ma bezpośredniej metody dla $kolor, co jest celową strategią, aby zapewnić kontrolę nad dostępem do tego pola. W praktyce, pole $kolor mogłoby być wykorzystywane do przechowywania informacji, które nie powinny być zmieniane zewnętrznie, a jedynie konfigurowane wewnątrz klasy lub podczas jej inicjalizacji. Taki układ sprzyja enkapsulacji, jednym z filarów programowania obiektowego, promując bezpieczeństwo danych i modularność kodu. W projektach komercyjnych zaleca się również dodanie metod get i set dla prywatnych zmiennych, aby zachować elastyczność i kontrolę nad danymi.

Pytanie 30

W PHP, aby stworzyć obiekt pkt dla klasy Punkt, której definicja znajduje się poniżej, należy użyć polecenia

class Punkt {
  public $x;
  public $y;
}
A. pkt = new Punkt();
B. pkt Punkt();
C. Punkt() pkt;
D. pkt Punkt;
W języku PHP tworzenie obiektu z zdefiniowanej klasy wymaga użycia słowa kluczowego new. Poprawna instrukcja to pkt = new Punkt();. Słowo new jest używane do dynamicznego alokowania pamięci na nowy obiekt klasy Punkt. W tym przypadku Punkt jest klasą, która została wcześniej zdefiniowana w kodzie i zawiera właściwości publiczne takie jak $x i $y. Kiedy wykonujemy new Punkt(), wywoływany jest konstruktor klasy, który w tym przypadku jest domyślny, ponieważ klasa Punkt nie definiuje własnego konstruktora. Warto zauważyć, że zgodnie z dobrymi praktykami programowania w PHP, każda deklaracja nowego obiektu powinna być poprzedzona słowem new, co zapewnia czytelność i jednoznaczność kodu. Ten sposób tworzenia obiektów jest zgodny ze standardem PSR-12. Praktyczne zastosowanie tworzenia obiektów w PHP jest szerokie i obejmuje m.in. modelowanie danych w aplikacjach, obsługę struktur danych oraz implementację wzorców projektowych, takich jak singleton czy fabryka. Korzystanie z obiektów pozwala na przejrzyste i zorganizowane zarządzanie kodem oraz łatwą jego rozbudowę o nowe funkcje.

Pytanie 31

W języku PHP, aby zaprezentować ciąg n znaków @, konieczne jest skorzystanie z funkcji

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. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki(@,$n);
Wszystkie inne przedstawione odpowiedzi nie są poprawne z kilku powodów. Pierwsza z analizowanych koncepcji nie definiuje funkcji w sposób zgodny z wymaganiami, ponieważ argumenty są niepoprawnie zdefiniowane, a pętla iteracyjna nie ma jasno określonej liczby powtórzeń. Co więcej, nie przekazuje ona znaku do wydrukowania w sposób, który umożliwiałby elastyczność. Kolejna odpowiedź nie uwzględnia przekazywania znaku, a zamiast tego skupia się jedynie na iteracjach, co skutkuje błędnym podejściem do zadania. Funkcja, która nie przyjmuje znaku jako argumentu, nie jest w stanie spełnić wymagań związanych z dynamicznym wyświetlaniem konkretnego znaku. W ostatniej niepoprawnej koncepcji, argumenty funkcji są błędnie przypisane, ponieważ nie ma dość logicznego powiązania pomiędzy nimi a zamierzonym celem funkcji, co prowadzi do niepoprawnego działania kodu. Tego rodzaju błędy w definicji i implementacji funkcji mogą prowadzić do nieczytelności oraz trudności w debugowaniu, co jest nie do zaakceptowania w profesjonalnym programowaniu.

Pytanie 32

Funkcja zapisana w języku PHP ma postać jak poniżej. Jej zadaniem jest

function fun1($liczba)
{
    if($liczba % 2 == 0)
        return 1;

    return 0;
}
A. zwrócenie wartości 0, gdy liczba jest parzysta.
B. zwrócenie wartości 1, gdy liczba jest parzysta.
C. wypisanie liczby parzystej.
D. wypisanie liczby nieparzystej.
Twoja odpowiedź jest poprawna. Funkcja fun1($liczba) w PHP zwraca wartość 1, gdy liczba podana jako argument jest parzysta. Jest to wynikiem działania funkcji, której składnikami są operator modulo (%) i porównanie (==). Kod ($liczba % 2 == 0) sprawdza, czy reszta z dzielenia liczby przez 2 jest równa zero, co jest prawdą dla wszystkich liczb parzystych. Jeśli warunek jest spełniony, funkcja zwraca wartość 1. Jest to typowe i efektywne podejście do sprawdzania parzystości liczb w językach programowania. Wykorzystanie operatora modulo jest powszechną praktyką, gdyż nie tylko pozwala na realizację takiej operacji, ale również jest szybkie i nie wymaga zbyt dużego nakładu zasobów procesora. Można zastosować tę wiedzę w różnych scenariuszach - na przykład, gdy potrzebujesz przeprowadzić różne operacje na podstawie parzystości lub nieparzystości liczb.

Pytanie 33

Funkcja pg_connect w języku PHP służy do nawiązania połączenia z bazą danych

A. MS ACCESS
B. MS SQL
C. PostgreSQL
D. mySQL
Polecenie pg_connect w języku PHP jest dedykowane do nawiązywania połączeń z bazami danych PostgreSQL, które są relacyjnymi bazami danych znanymi z dużej wydajności, elastyczności oraz wsparcia dla zaawansowanych funkcji, takich jak transakcje, procedury składowane czy różnorodne typy danych. Użycie pg_connect pozwala programistom na łatwe integrowanie aplikacji PHP z PostgreSQL, co jest kluczowe w przypadku aplikacji wymagających solidnego zarządzania danymi. Przykładowo, aby nawiązać połączenie z bazą danych, można użyć kodu: $conn = pg_connect("host=localhost dbname=mydb user=myuser password=mypassword");. Taki sposób połączenia umożliwia nie tylko dostęp do danych, ale też wykonanie zapytań SQL i zarządzanie wynikami. Dobrą praktyką jest zawsze zamykanie połączeń oraz obsługa potencjalnych błędów, co przyczynia się do stabilności aplikacji. Zgodnie z wytycznymi dotyczącymi bezpieczeństwa, szczególnie w kontekście aplikacji webowych, ważne jest również stosowanie technik zabezpieczeń, takich jak przygotowane zapytania, aby zapobiec atakom typu SQL injection.

Pytanie 34

Fragment kodu w języku PHP ma następującą postać: Zakładając, że zmienne: a, b, c przechowują wartości numeryczne, wynikiem działania warunku będzie wypisanie liczby

if ($a > $b && $a > $c)   echo $a;
else if ($b > $c)   echo $b;
else   echo $c;
A. najmniejszej.
B. największej.
C. nieparzystej.
D. parzystej.
Dobrze zrozumiałeś działanie warunków logicznych w języku PHP! Fragment kodu prezentowany na zdjęciu rzeczywiście wypisuje wartość największej zmiennej. Jest to wynik skumulowanego działania kilku warunków if oraz else if, które porównują wartości zmiennych a, b, c. Najpierw, warunek sprawdza, czy zmienna a jest większa od pozostałych. Jeśli tak, wartość a jest wypisywana. Jeżeli nie, przechodzi do kolejnego warunku, gdzie sprawdza, czy b jest większe od c. Jeżeli tak, wypisuje b, jeżeli nie - wypisze c. W ten sposób kod zawsze wypisze największą wartość. Zrozumienie tej logiki jest kluczowe w programowaniu, szczególnie w kontekście operacji porównania, które są podstawą wielu bardziej skomplikowanych algorytmów. To ważny fragment wiedzy, który pomaga w budowaniu efektywnych i optymalnych rozwiązań kodowych.

Pytanie 35

W przedstawionym kodzie PHP w miejscu kropek powinno znajdować się polecenie

Ilustracja do pytania
A. mysqli_free_result($zapytanie);
B. mysqli_query($zapytanie);
C. mysqli_num_fields($zapytanie);
D. mysqli_fetch_row($zapytanie);
Koncept mysqli_free_result wydaje się atrakcyjny gdyż służy do zwalniania pamięci zajmowanej przez zestaw wyników. Jednak jego zastosowanie w tym kontekście jest błędne ponieważ zwalnianie pamięci powinno odbywać się po zakończeniu przetwarzania danych a nie przed pobraniem wierszy. Użycie mysqli_num_fields mogłoby wprowadzić w błąd ponieważ funkcja ta zwraca liczbę kolumn w zestawie wyników a nie jest związana z pobieraniem poszczególnych wierszy danych. W kontekście iteracji po wierszach zapytania jest to nieadekwatne. Funkcja mysqli_query jest używana do wysyłania zapytań do bazy danych i zwraca wynik zapytania ale sama w sobie nie pobiera danych z zestawu wyników co w tym zadaniu jest niezbędne. Częstym błędem jest mylenie funkcji wynikowych z funkcjami wykonującymi zapytania. Kluczowym do zrozumienia jest właściwe wykorzystanie funkcji do iteracyjnego pobierania danych co wymaga rozróżnienia zadań jakie pełni każda z funkcji w kontekście przetwarzania wyników zapytań do bazy danych. Prawidłowe rozróżnianie tych funkcji pozwala na efektywne zarządzanie danymi i pamięcią co jest istotne w kontekście aplikacji webowych oraz zapewnienia ich wydajności i poprawnego działania.

Pytanie 36

Na stronie www znajduje się formularz, do którego należy stworzyć następujące funkcje: walidacja: w czasie wypełniania formularza na bieżąco kontrolowana jest poprawność danych, przesyłanie danych: po zrealizowaniu formularza i jego zatwierdzeniu, dane są przekazywane do bazy danych na serwerze. Aby zrealizować tę funkcjonalność w jak najprostszy sposób, należy zapisać

A. walidację oraz przesyłanie danych w języku JavaScript
B. walidację oraz przesyłanie danych w języku PHP
C. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
D. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
Wybór walidacji oraz przesyłania danych wyłącznie w PHP nie tylko nie jest optymalny, ale również niezgodny z dobrymi praktykami. Walidacja po stronie serwera, bez wcześniejszego sprawdzenia danych po stronie klienta, prowadzi do gorszego doświadczenia użytkownika, ponieważ każde błędne dane są wysyłane na serwer przed zwróceniem błędu do użytkownika. Taki proces zwiększa obciążenie serwera, ponieważ każde błędne żądanie wiąże się z niepotrzebnym przetwarzaniem, co jest szczególnie nieefektywne w przypadku formularzy często używanych przez użytkowników. W przypadku przesyłania danych w JavaScript, istnieje ryzyko, że dane mogą być manipulowane po drodze, co prowadzi do problemów z bezpieczeństwem, takich jak ataki typu Cross-Site Scripting (XSS). Oprócz tego, nie jest właściwe korzystanie z PHP do walidacji rzeczywistych danych wejściowych w interfejsie użytkownika, gdyż PHP jest językiem działającym po stronie serwera i nie ma dostępu do stanu interfejsu. Przykładem błędnego myślenia może być założenie, że serwer może efektywnie obsłużyć wszystkie błędy walidacji na etapie zapisu danych w bazie, co jest nieefektywne w praktyce. W związku z tym każda aplikacja internetowa powinna implementować walidację danych po stronie klienta i serwera, aby zminimalizować problemy z użytkownikami oraz zapewnić bezpieczeństwo aplikacji.

Pytanie 37

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

A. uzyskania pierwszego dostępnego indeksu bazy, tak, aby można było pod nim wstawić nowe dane
B. uzyskania id ostatnio dodanego wiersza
C. otrzymania kodu błędu, gdy wstawienie wiersza się nie powiodło
D. pobrania najwyższego indeksu bazy, aby po jego zwiększeniu wstawić pod niego 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 38

Dany fragment kodu ilustruje składnię danego języka

Ilustracja do pytania
A. JavaScript
B. C
C. C#
D. PHP
Kod przedstawiony w pytaniu jest napisany w języku PHP który jest popularnym językiem skryptowym stosowanym na serwerach do generowania dynamicznych stron internetowych Zaczyna się od znacznika otwierającego '<?php' co jasno wskazuje na PHP W kodzie użyte są funkcje takie jak file_get_contents fopen fwrite i fclose które są typowe dla PHP i służą do manipulacji plikami Funkcja file_get_contents służy do odczytywania zawartości pliku co jest niezbędne do pobrania aktualnej wartości zmiennej Silosc Następnie zmienna ta jest inkrementowana aby zwiększyć jej wartość o jeden co jest powszechnie stosowane w licznikach odwiedzin stron internetowych PHP jako język skryptowy pozwala na łatwe manipulowanie danymi serwera a także na integrację z bazami danych i szeroką gamę funkcji sieciowych i narzędzi co czyni go jednym z najczęściej używanych języków do tworzenia aplikacji webowych Dobrym standardem jest stosowanie PHP w przypadku gdy potrzebne jest dynamiczne generowanie treści oraz zarządzanie danymi użytkowników

Pytanie 39

Cookie stworzony za pomocą polecenia PHP

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po jednej godzinie od momentu jego utworzenia
B. będzie przechowywany na serwerze przez 24 godziny
C. będzie przechowywany na serwerze przez jedną godzinę
D. wygaśnie po dobie od momentu jego utworzenia
Wybór odpowiedzi, że ciasteczko wygaśnie po jednej godzinie od jego utworzenia, jest błędny, ponieważ czas wygaśnięcia ciasteczka jest jasno określony w wywołaniu funkcji setcookie(). Przypisanie wartości time() + (3600 * 24) oznacza, że ciasteczko będzie ważne przez 24 godziny, a nie jedną. Pojęcia związane z czasem życia ciasteczek są kluczowe w kontekście zarządzania sesjami i stanami użytkowników w aplikacjach webowych. Wiele osób myli jednostki czasu, co prowadzi do nieprawidłowych założeń dotyczących działania ich aplikacji. Kolejny błąd polega na przeświadczeniu, że ciasteczka są przechowywane na serwerze, gdy w rzeczywistości są one zapisywane na komputerze użytkownika. Serwer ustala zasady dotyczące ciasteczek, ale ich fizyczne miejsce przechowywania to urządzenie klienckie. Często zdarza się również, że użytkownicy nie są świadomi, jak długo ciasteczka mogą pozostać aktywne, co wpływa na ich doświadczenia i może prowadzić do nieporozumień w kontekście logowania czy ustawień prywatności. W związku z tym właściwe zrozumienie działania i życia ciasteczek jest kluczowe dla zapewnienia prawidłowego funkcjonowania aplikacji oraz ochrony danych użytkowników.

Pytanie 40

Jak można usunąć ciasteczko o nazwie ciastko, korzystając z języka PHP?

A. setcookie("ciastko", "", time()-3600);
B. unsetcookie("$ciastko");
C. deletecookie("ciastko");
D. setcookie("$ciastko", "", 0);
Wszystkie pozostałe odpowiedzi zawierają błędy koncepcyjne, które uniemożliwiają skuteczne usunięcie ciasteczka. Przykładowo, deletecookie("ciastko") to niepoprawne podejście, ponieważ nie istnieje funkcja o takiej nazwie w standardowej bibliotece PHP. Użytkownicy mogą myśleć, że wystarczy wywołać funkcję, która usunie ciasteczko, jednak PHP wymaga korzystania z funkcji setcookie(), aby to osiągnąć. W przypadku setcookie("$ciastko", "", 0), użytkownik próbuje usunąć ciasteczko, ale błędnie ustawia czas wygaśnięcia na zero. Wartość zero nie jest interpretowana jako czas przeszły, co uniemożliwia przeglądarce uznanie ciasteczka za wygasłe. Ponadto, użycie zmiennej "$ciastko" zamiast bezpośredniego odniesienia do nazwy ciasteczka wprowadza dodatkowe zamieszanie. Ostatnia propozycja, unsetcookie("$ciastko"), również jest błędna, ponieważ nie istnieje funkcja unsetcookie() w PHP. Użytkownicy mogą mylnie przypuszczać, że funkcje do usuwania zmiennych i ciasteczek są sobie równe, jednak każda z nich ma swoje specyficzne zastosowanie i zachowanie. Kluczowym punktem w pracy z ciasteczkami jest zrozumienie, że celem jest ich usunięcie przez ustawienie daty wygaśnięcia w przeszłości, a nie przez wywoływanie nieistniejących funkcji.