Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 7 kwietnia 2026 15:48
  • Data zakończenia: 7 kwietnia 2026 16:36

Egzamin niezdany

Wynik: 14/40 punktów (35,0%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Na podstawie przedstawionego kodu PHP wskaż ile wynosi czas ważności ustawionego ciasteczka?

A. 1 godzina.
B. 24 godziny.
C. 1 minuta.
D. 24 doby.
Ten fragment kodu PHP jest dobrym przykładem, jak łatwo pomylić się przy interpretowaniu czasu życia ciasteczka. Wiele osób widząc wartość '24' w nazwie albo w wartości ciasteczka automatycznie kojarzy to z 24 godzinami czy 24 dobami. Tymczasem w ogóle nie ma to znaczenia dla czasu ważności. O tym, jak długo cookie będzie żyło, decyduje wyłącznie trzeci parametr funkcji setcookie(), czyli tutaj: time() + 60. Funkcja time() zwraca aktualny czas w sekundach, a liczba 60 to po prostu 60 sekund. Nie ma tu żadnej „magii” powiązanej z liczbą 24. Częsty błąd polega na tym, że ktoś myśli kategoriami: godziny, dni, a nie sekund. W PHP czas wygaśnięcia w setcookie musi być podany jako konkretny znacznik czasowy UNIX, więc programista musi sam przeliczyć sobie minuty czy godziny na sekundy. Jeśli ktoś pomyśli, że 60 to np. 60 minut, to w praktyce pomyli się dokładnie 60 razy. Podobnie założenie, że skoro wartość ciasteczka to '24', to ciasteczko będzie ważne 24 godziny lub 24 doby, wynika z mieszania znaczenia logicznego danych z mechanizmem technicznym ich przechowywania. Wartość '24' to po prostu tekst przechowywany w cookie, bez żadnego automatycznego powiązania z czasem. Z mojego doświadczenia takie pomyłki biorą się też z porównywania do innych technologii, gdzie czas ustawia się np. w minutach. W PHP (i generalnie w mechanizmie UNIX time) wszystko liczymy w sekundach. Dlatego dobre praktyki mówią, żeby zawsze jawnie pisać wyrażenia typu 60 * 60 (godzina), 60 * 60 * 24 (doba), zamiast samego „3600” czy „86400”, bo to od razu sugeruje, o jaką jednostkę chodzi i ogranicza ryzyko złej interpretacji. Jeżeli programista nie rozumie tej konwencji, będzie projektował mechanizmy sesji, logowania czy koszyków zakupów z błędnymi czasami życia ciasteczek, co może prowadzić do irytujących sytuacji dla użytkownika, a nawet do problemów z bezpieczeństwem (np. zbyt długie przechowywanie wrażliwych informacji). Dlatego tak ważne jest, żeby przy każdym użyciu setcookie() świadomie przeliczać czas na sekundy i nie sugerować się nazwą ani wartością samego ciasteczka.

Pytanie 2

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 i miasta ze wszystkich zwróconych rekordów.
B. ulicy i miasta z pierwszego zwróconego rekordu.
C. miasta i kodu pocztowego z pierwszego zwróconego rekordu.
D. miasta i kodu pocztowego ze wszystkich zwróconych rekordów.
Niestety, wybrałeś niepoprawną odpowiedź. W twoim fragmencie kodu PHP, wykonujesz zapytanie SQL, które wybiera kolumny 'ulica', 'miasto', 'kod pocztowy' z tabeli 'adresy'. Następnie używasz funkcji mysqli_fetch_row(), która pobiera pierwszy zwrócony rekord jako indeksowaną tablicę. Funkcja echo wyświetla drugi i trzeci element tej tablicy (indeksy 1 i 2), które odpowiadają kolumnom 'miasto' i 'kod pocztowy'. Niepoprawne odpowiedzi sugerują, że twój kod wypisze 'ulicę i miasto' lub 'miasto i kod pocztowy' ze wszystkich zwróconych rekordów, co jest nieprawdą. Niezrozumienie, jak funkcje PHP działają z MySQL i jaki jest ich wynik, może prowadzić do poważnych błędów w kodzie. Wskazane jest dokładne zrozumienie, jakie dane są zwracane przez SQL i jak je przetwarzać w PHP.

Pytanie 3

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. A
B. C
C. D
D. B
Błędne odpowiedzi w tym przypadku wynikają z niepoprawnego przekazania parametrów do funkcji lub niewłaściwego sposobu ich wykorzystania co skutkuje nieosiągnięciem zamierzonego celu czyli wyświetlenia ciągu znaków @. W jednym przypadku funkcja nie przyjmuje wystarczającej liczby parametrów co uniemożliwia dynamiczne określenie liczby powtórzeń znaku. Zamiast tego powinno się zapewnić że funkcja przyjmuje zarówno znak jak i liczbę powtórzeń jako parametry. Innym częstym błędem jest brak przekazania właściwego argumentu do funkcji co skutkuje jej niepoprawnym działaniem i potencjalnym błędem wykonania. Ponadto korzystanie z niepoprawnie nazwanych zmiennych lub zmiennych które nie są jasno zdefiniowane w kontekście wywołania funkcji prowadzi do błędów logicznych. Kluczowym jest zrozumienie w jaki sposób funkcje w PHP przyjmują i przetwarzają argumenty oraz jak pętle takie jak for pozwalają na iteracyjne przetwarzanie danych. Poprawne zrozumienie i zastosowanie tych mechanizmów jest fundamentem efektywnego programowania w PHP co przekłada się na tworzenie kodu który jest nie tylko poprawny ale także łatwy do utrzymania i skalowalny. Zrozumienie tych podstawowych zasad pozwala na uniknięcie typowych błędów w programowaniu i prowadzi do tworzenia bardziej niezawodnych aplikacji. Prawidłowe podejście do tworzenia funkcji i ich wywoływania jest jednym z kluczowych elementów w rozwijaniu umiejętności programistycznych w PHP i innych językach programowania. Dlatego też ważne jest aby zawsze dokładnie analizować wymagania funkcji i poprawnie konstruować ich implementację oraz wywołanie aby zapewnić ich poprawne i efektywne działanie w kontekście całego systemu.

Pytanie 4

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

Ilustracja do pytania
A. mysqli_num_fields($zapytanie);
B. mysqli_query($zapytanie);
C. mysqli_fetch_row($zapytanie);
D. mysqli_free_result($zapytanie);
Funkcja mysqli_fetch_row jest prawidłowa w tym kontekście ponieważ służy do pobierania jednego wiersza wyników z zestawu wyników zapytań do bazy danych. Każde wywołanie tej funkcji zwraca tablicę indeksowaną numerycznie reprezentującą wiersz danych co doskonale pasuje do zaprezentowanego kodu PHP. W przedstawionym kodzie mamy do czynienia z pętlą for która iteruje po każdym wierszu zestawu wyników. W każdym kroku pętli echo wyprowadza wartości z wiersza. Użycie mysqli_fetch_row jest zgodne z najlepszymi praktykami ponieważ pozwala na kontrolowane przetwarzanie danych z bazy danych i jest bardziej efektywne przy pracy z dużymi zbiorami danych niż pobieranie wszystkich danych na raz. Dodatkowo taka metoda pozwala na lepsze zarządzanie pamięcią ponieważ przetwarzamy dane wiersz po wierszu co jest ważne przy dużych zbiorach danych. Warto pamiętać że mysqli_fetch_row zwraca null gdy nie ma więcej wierszy do pobrania co jest przydatne do wykrywania końca zestawu wyników. Jest to częsty wybór w wielu aplikacjach webowych do przetwarzania danych pobranych z bazy danych

Pytanie 5

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

A. exit
B. mysql_exit
C. mysqli_close
D. die
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 6

Jak można zaznaczyć komentarz w kodzie PHP?

A. <? … ?>
B. <!-- …. -->
C. /* … */
D. /? … ?/
Komentarze w kodzie PHP można umieszczać za pomocą znaków /* … */. Jest to standardowy sposób na dodawanie notatek, które są ignorowane przez interpreter PHP. Komentarze wieloliniowe są szczególnie przydatne w przypadku, gdy chcemy opisać większe fragmenty kodu lub wyłączyć sekcje kodu bez ich usuwania. Na przykład, możemy umieścić w komentarzach informacje o autorze, dacie powstania lub szczegóły dotyczące funkcjonalności danej funkcji. Dobrą praktyką jest również dokumentowanie ważnych informacji dotyczących zmiennych czy parametrów funkcji, co ułatwia przyszłą konserwację kodu. Warto pamiętać, że użycie komentarzy jest kluczowe w pracy zespołowej lub w projektach długoterminowych, gdzie zrozumienie kodu przez innych programistów może być kluczowe dla sukcesu projektu. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami programowania zwiększa czytelność kodu i ułatwia jego późniejsze modyfikacje oraz debugowanie.

Pytanie 7

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
B. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
C. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
D. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
Definicja tablicy asocjacyjnej w języku PHP, przedstawiona jako $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");, jest poprawna składniowo. Tablice asocjacyjne to struktury danych, które pozwalają na przechowywanie wartości w parach klucz-wartość. Kluczami mogą być stringi lub liczby, a wartości mogą być różnego typu. Użycie operatora => jest kluczowe, ponieważ wskazuje, że dla danego klucza (np. "Anna") przypisana jest konkretna wartość (np. "35"). W praktyce tablice asocjacyjne są niezwykle użyteczne w wielu sytuacjach, takich jak przetwarzanie danych z formularzy, gdzie klucze odpowiadają nazwom pól, a wartości to wprowadzone przez użytkownika dane. Dzięki tablicom asocjacyjnym można z łatwością uzyskiwać dostęp do wartości, analizować je i manipulować, co czyni je standardowym narzędziem w programowaniu w PHP i praktycznym podejściem w tworzeniu aplikacji webowych.

Pytanie 8

Funkcja mysqli_num_rows() w PHP może być używana po wcześniejszym wykonaniu zapytania

A. DELETE
B. SELECT
C. UPDATE
D. INSERT
Funkcja mysqli_num_rows() służy do zwracania liczby wierszy w rezultacie zapytania SQL, jednak może być wywołana wyłącznie po zastosowaniu kwerendy SELECT. Kwerenda ta jest używana do pobierania danych z bazy danych, co oznacza, że jej wykonanie generuje zbiór wyników. Kiedy wykonujemy zapytanie SELECT, mysqli_num_rows() umożliwia nam sprawdzenie, ile rekordów zwróciło zapytanie. Na przykład, po wykonaniu zapytania SELECT * FROM users, możemy użyć mysqli_num_rows($result), aby uzyskać liczbę użytkowników w tabeli. To podejście jest zgodne z dobrymi praktykami programistycznymi, ponieważ pozwala na efektywne zarządzanie i analizowanie danych. Warto także zauważyć, że funkcja ta nie jest stosowana w przypadku kwerend modyfikujących dane, takich jak INSERT, DELETE czy UPDATE, ponieważ te operacje nie zwracają zbioru wyników, a jedynie potwierdzają wykonanie akcji. Zrozumienie, kiedy używać mysqli_num_rows(), jest kluczowe w pracy z bazami danych w PHP i pozwala na skuteczne optymalizowanie zapytań oraz zarządzanie danymi.

Pytanie 9

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. Kolejnymi liczbami od 0 do 9 i wypisanie ich
C. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
D. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
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 10

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

A. $a = str_rep('Kowalski','Nowak',$a);
B. $a = str_replace('Kowalski','Nowak',$a);
C. $a = str_replace('Nowak', 'Kowalski',$a);
D. $a = str_replace('Nowak','Kowalski');
Odpowiedź jest prawidłowa, ponieważ funkcja str_replace w PHP jest przeznaczona do zastępowania wszystkich wystąpień określonego ciągu znaków innym ciągiem w danym tekście. W tym przypadku, używając str_replace('Kowalski','Nowak',$a), zmieniamy każde wystąpienie słowa 'Kowalski' na 'Nowak' w zmiennej a. Działa to dla wszystkich instancji, co czyni to podejście bardzo efektywnym w przypadkach, gdy musimy dokonać masowych zmian w tekstach. Jest to dobra praktyka, aby używać str_replace do takich operacji, ponieważ jest to funkcja wbudowana, zoptymalizowana pod kątem wydajności i czytelności kodu. Warto również pamiętać, że pierwszym parametrem jest ciąg, który chcemy zastąpić, drugim jest ciąg, na który go zamieniamy, a trzecim jest tekst, w którym dokonujemy zmiany. Zastosowanie tej funkcji jest powszechne w wielu zastosowaniach, na przykład w systemach CMS, gdzie często zachodzi potrzeba masowej edycji treści.

Pytanie 11

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. największej.
B. najmniejszej.
C. parzystej.
D. nieparzystej.
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 12

Jakie parametry trzeba przekazać do polecenia PHP, aby wprowadzić dane do bazy?

mysqli_query($zm1, $zm2);
A. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie SELECT w $zm2
B. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie INSERT INTO w $zm2
C. NULL w $zm1, aby baza mogła zapisać tam kod błędu oraz zapytanie SELECT w $zm2
D. id wiersza w $zm1 oraz zapytanie INSERT INTO w $zm2
Aby wstawić dane do bazy danych w PHP za pomocą funkcji mysqli_query musisz przekazać dwa kluczowe parametry. Pierwszym z nich jest identyfikator połączenia z bazą danych który odpowiada zmiennej $zm1. Jest to uchwyt do otwartej sesji z bazą danych który otrzymasz po ustanowieniu połączenia używając funkcji mysqli_connect. Drugim parametrem jest zapytanie SQL w tym przypadku zapytanie typu INSERT INTO które znajduje się w zmiennej $zm2. To zapytanie jest odpowiedzialne za dodanie nowych danych do określonej tabeli w bazie. Korzystanie z mysqli_query jest standardową praktyką w PHP przy pracy z bazami danych MySQL umożliwia interakcję z bazą poprzez wykonywanie różnorodnych zapytań SQL. Dobrą praktyką jest także zabezpieczenie swoich zapytań przed atakami SQL injection co można osiągnąć poprzez wcześniejsze przygotowanie i oczyszczenie danych lub zastosowanie bardziej zaawansowanych mechanizmów takich jak prepared statements dostępnych w bibliotekach rozszerzających możliwości pracy z bazą danych.

Pytanie 13

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. im z indeksem Janek
B. im z następnym numerem indeksu
C. Janek o indeksie im
D. Janek z następnym numerem indeksu
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 14

Zdefiniowano poniższą funkcję w PHP:

function policz($Z) {
    while($Z < 5) {
        $Z += 2 * $Z + 1;
    }
    return $Z;
}
Funkcję policz wywołano z wartością argumentu $Z = 1. Jaki rezultat zostanie zwrócony?
A. 7
B. 13
C. 4
D. 1
Niestety, tutaj coś nie zagrało. W pytaniu była funkcja 'policz' w PHP, która iteracyjnie zwiększa wartość zmiennej $Z, aż ta nie przekroczy 5. W każdej iteracji $Z rośnie o 2 * $Z + 1. Jak widać, przy odpowiednim argumencie początkowym wartość $Z rośnie bardzo szybko. W naszym przypadku zaczynamy z $Z równym 1. Po dwóch krokach mamy już 13, co kończy działanie pętli. Zamiast 1, 7 czy 4, funkcja 'policz' zwraca 13. Kluczowe jest zrozumienie, jak działają te iteracje i pętle w PHP.

Pytanie 15

Gdy zmienna $x przechowuje dowolną dodatnią liczbę naturalną, poniższy kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x) 
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od x do 0
B. kolejne liczby od 0 do x-1
C. przypadkowe liczby z zakresu (0, x)
D. liczby wprowadzane z klawiatury, aż do momentu wprowadzenia wartości x
Poprawna odpowiedź to 'kolejne liczby od 0 do x-1'. Kod PHP w pętli 'while' wyświetla kolejne liczby naturalne, zaczynając od 0. Pętla ta będzie kontynuowana, dopóki zmienna $licznik nie osiągnie wartości x, czyli dopóki $licznik < x. Wartością ostatniej liczby, jaką pętla wyświetli, będzie zatem x-1, ponieważ wartość x nie jest już spełnieniem warunku pętli. To ważne rozróżnienie w programowaniu, gdzie często stosuje się różne typy pętli i konstrukcje sterujące. W praktyce, zrozumienie tego mechanizmu jest kluczowe dla manipulowania danymi i tworzenia skryptów o różnych funkcjonalnościach. Pętle są jednym z podstawowych elementów kontroli przepływu w większości języków programowania, a różne ich typy i zastosowania pozwalają na realizację różnorodnych zadań, od prostych operacji na danych do skomplikowanych algorytmów.

Pytanie 16

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

A. deletecookie("ciastko");
B. setcookie("$ciastko", "", 0);
C. setcookie("ciastko", "", time()-3600);
D. unsetcookie("$ciastko");
Odpowiedź setcookie("ciastko", "", time()-3600) jest prawidłowa, ponieważ do usunięcia ciasteczka w PHP należy ustawić jego wartość na pusty ciąg oraz datę ważności w przeszłości. Funkcja setcookie() jest standardowym sposobem zarządzania ciasteczkami w PHP. Argumenty przekazywane do tej funkcji obejmują nazwę ciasteczka, wartość oraz czas, kiedy ciasteczko wygasa. Ustawiając czas na time()-3600, informujemy przeglądarkę, że ciasteczko jest nieaktualne, co skutkuje jego usunięciem. Dobrą praktyką jest również uzupełnienie argumentów o ścieżkę i domenę, aby upewnić się, że wszystkie instancje ciasteczka są usuwane. Przykładowo, setcookie("ciastko", "", time()-3600, "/", "example.com"); usuwa ciasteczko w kontekście całej witryny. Pamiętaj, aby wywołać tę funkcję przed jakimkolwiek wyjściem HTML, ponieważ nagłówki HTTP muszą być wysyłane przed jakimikolwiek danymi wyjściowymi.

Pytanie 17

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ę w języku JavaScript, a przesyłanie danych w skrypcie PHP
B. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
C. walidację oraz przesyłanie danych w języku PHP
D. walidację oraz przesyłanie danych w języku JavaScript
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 18

Jaką formę przybierze data po wykonaniu poniższego kodu PHP?

<?php
echo date('l, dS F Y');
?>
A. Monday, 10th July 17
B. Monday, 10 July 2017
C. Monday, 10th July 2017
D. 10, Monday July 2017
W tym przykładzie funkcja date() w PHP przyjmuje ciąg znaków 'l dS F Y' jako parametr formatowania, co determinuje sposób wyświetlenia daty. Znak 'l' reprezentuje pełną nazwę dnia tygodnia, co w przypadku poniedziałku da 'Monday'. 'd' to dwucyfrowa reprezentacja dnia miesiąca, dodając 'S' uzyskujemy jego wersję z angielskim sufiksem porządkowym, np. '10th', co jest zgodne z odpowiedzią. 'F' reprezentuje pełną nazwę miesiąca, czyli 'July', a 'Y' to pełny rok, czyli '2017'. Kombinacja tych formatów pozwala na uzyskanie czytelnej i zgodnej ze standardami reprezentacji daty w języku angielskim, co jest często wykorzystywane w międzynarodowych projektach webowych. Takie formatowanie jest nie tylko intuicyjne dla użytkowników, ale także zgodne z dobrymi praktykami w zakresie czytelności i użyteczności w aplikacjach internetowych. PHP umożliwia elastyczne formatowanie dat, co jest bardzo przydatne w kontekście globalnych aplikacji wymagających różnych lokalizacji.

Pytanie 19

Jak, wykorzystując język PHP, można zapisać w ciasteczku wartość znajdującą się w zmiennej dane na okres jednego dnia?

A. setcookie("dane", $dane, 0);
B. setcookie("dane", $dane, time());
C. setcookie("dane", $dane, time() + (3600*24));
D. setcookie("dane", "dane", 0);
Poprawna odpowiedź to setcookie("dane", $dane, time() + (3600*24));, ponieważ umożliwia ona zapisanie wartości zmiennej $dane w ciasteczku o nazwie "dane" na okres jednego dnia. Funkcja setcookie() w PHP przyjmuje trzy podstawowe argumenty: nazwę ciasteczka, jego wartość oraz czas wygaśnięcia. W tym przypadku, używając time() + (3600*24), ustawiamy czas wygaśnięcia ciasteczka na aktualny czas plus 24 godziny (3600 sekund w godzinie razy 24). Jest to zgodne z najlepszymi praktykami zarządzania sesjami i danymi użytkowników, ponieważ pozwala na przechowywanie informacji, które są dostępne dla użytkownika przez dłuższy czas, co może być przydatne w różnych scenariuszach, takich jak zapamiętywanie preferencji użytkownika lub stanu logowania. Użycie odpowiednich czasów wygaśnięcia wpływa na bezpieczeństwo i prywatność danych. Dobre praktyki sugerują także, aby ciasteczka były używane w sposób przemyślany, aby nie obniżać wydajności aplikacji ani nie narażać danych użytkowników na nieautoryzowany dostęp.

Pytanie 20

Jakim poleceniem można zobaczyć konfigurację serwera PHP, zawierającą między innymi: wersję PHP, system operacyjny serwera oraz wartości przedefiniowanych zmiennych?

A. print_r(ini_get_all());
B. phpcredits();
C. phpinfo();
D. echo phpversion();
Funkcja phpinfo() jest najczęściej używaną metodą do wyświetlania szczegółowych informacji o konfiguracji serwera PHP. Umożliwia ona dostarczenie danych na temat wersji PHP, zainstalowanych modułów, wartości konfiguracyjnych oraz informacji o systemie operacyjnym, na którym działa serwer. W kontekście dostosowywania aplikacji webowych, phpinfo() jest nieocenionym narzędziem diagnostycznym. Na przykład, gdy programista potrzebuje zweryfikować, czy określony moduł PHP, taki jak cURL czy GD, jest aktywowany, wystarczy umieścić w skrypcie polecenie `<?php phpinfo(); ?>`. Efektem jest pełna tabela z danymi, która zawiera wszystkie istotne informacje. Dobre praktyki wskazują, aby nie publikować wyników phpinfo() na stronach dostępnych publicznie, ponieważ ujawniają one wrażliwe informacje o konfiguracji serwera, co może prowadzić do potencjalnych luk w bezpieczeństwie.

Pytanie 21

Kod w języku PHP przedstawia się następująco (patrz ramka): Zakładając, że zmienne a, b, c mają wartości numeryczne, wynik warunku będzie skutkował wypisaniem liczby:

if ($a > $b && $a > $c)
    echo $a;
else if ($b > $c)
    echo $b;
else
    echo $c;
A. najmniejszej.
B. nieparzystej.
C. największej.
D. parzystej.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kod PHP używa instrukcji warunkowych if aby porównać wartości trzech zmiennych a b i c. Pierwsza instrukcja if sprawdza czy a jest większe od b i c. Jeśli tak to echo a wyświetla wartość a jako największą. Jeśli ten warunek nie jest spełniony sprawdzamy czy b jest większe od c za pomocą else if. Jeśli b jest rzeczywiście większe to echo b wyświetla wartość b. W przeciwnym razie instrukcja else zakłada że c jest największe i wyświetla echo c. To podejście jest powszechnie stosowane w programowaniu i opiera się na dobrej praktyce stopniowego eliminowania przypadków poprzez logiczne porównania. Znajomość takich konstrukcji jest kluczowa w codziennej pracy programisty umożliwiając tworzenie efektywnego i czytelnego kodu. Tego rodzaju struktura logiczna należy do podstawowych elementów algorytmiki w programowaniu proceduralnym i obiektowym. Rozumienie jak struktury kontrolne wpływają na przepływ programu jest podstawą efektywnego kodowania oraz rozwiązywania problemów poprzez algorytmy.

Pytanie 22

W języku PHP, aby uzyskać dostęp do pliku dane.txt w trybie tylko do odczytu i odczytać jego zawartość, należy użyć funkcji:

A. fopen("dane.txt", "w") oraz fgets()
B. fopen("dane.txt", "w") oraz fputs()
C. fopen("dane.txt", "r") oraz fgets()
D. fopen("dane.txt", "r") oraz fputs()

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź fopen("dane.txt", "r") oraz fgets() jest poprawna, ponieważ zastosowanie funkcji fopen z parametrem 'r' otwiera plik w trybie do odczytu. Funkcja fgets służy do odczytywania pojedynczej linii z pliku, co idealnie odpowiada potrzebie pobrania zawartości z pliku dane.txt. Przykładowe użycie tej pary funkcji może wyglądać tak: $handle = fopen('dane.txt', 'r'); if ($handle) { while (($line = fgets($handle)) !== false) { echo $line; } fclose($handle); } Warto również zauważyć, że przy pracy z plikami w PHP zaleca się zawsze sprawdzanie, czy plik został poprawnie otwarty, aby uniknąć błędów w czasie wykonania. Dobre praktyki obejmują także zamykanie pliku po jego użyciu, co pomaga w zarządzaniu zasobami systemowymi. Dodatkowo, w przypadku błędów, można wykorzystać funkcję error_reporting(), aby monitorować błędy i ostrzeżenia, co jest niezbędne w profesjonalnym rozwoju aplikacji webowych w PHP.

Pytanie 23

W języku PHP zapisano fragment kodu. Plik cookie stworzony tym poleceniem

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jeden dzień.
B. zostanie usunięty po jednym dniu od jego utworzenia.
C. zostanie usunięty po jednej godzinie od jego utworzenia.
D. będzie przechowywany na serwerze przez jedną godzinę.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź, którą zaznaczyłeś, to 'zostanie usunięty po jednym dniu od jego utworzenia'. W PHP działa to tak, że funkcja setcookie() bierze pod uwagę czas, po jakim cookie ma wygasnąć. To jest dodawane do aktualnego czasu, który dostajemy z funkcji time(). Kiedy widzisz wartość 3600 * 24, to znaczy, że mamy tu 86400 sekund, a to dokładnie jeden dzień. Czyli cookie zniknie z przeglądarki po upływie doby od założenia. Wydaje mi się, że to ważna sprawa, bo dobrze wiedzieć, jak działa cykl życia cookies w PHP. Pomoże to w ogarnianiu sesji i dbaniu o bezpieczeństwo w aplikacjach internetowych.

Pytanie 24

Która z podanych funkcji w języku PHP zwraca sumę połowy wartości a oraz połowy wartości b?

A. function licz($a,$b){return 2/$a+2/$b; }
B. function licz($a,$b){return ($a/2+$b)/2; }
C. function licz($a,$b){return $a/2+$b; }
D. function licz($a,$b){return $a/2+$b/2; }

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź to funkcja, która zwraca sumę połowy wartości a oraz połowy wartości b. W przypadku wybranej odpowiedzi, funkcja 'licz($a, $b)' oblicza zarówno $a/2, jak i $b/2, a następnie sumuje te dwie wartości, co jest zgodne z wymaganym działaniem. Przykładowo, dla $a=4 i $b=6, obliczenia wyglądają następująco: (4/2) + (6/2) = 2 + 3 = 5. Tego rodzaju operacje są powszechnie stosowane w programowaniu, zwłaszcza w kontekście obliczeń matematycznych. Zrozumienie, jak dzielić wartości i następnie je sumować, jest kluczowe w wielu aplikacjach, które wymagają przetwarzania danych liczbowych, jak na przykład w analizach statystycznych czy w algorytmach optymalizacyjnych. Warto dążyć do pisania funkcji, które są nie tylko poprawne, ale również przejrzyste i łatwe do zrozumienia, co jest zgodne z najlepszymi praktykami w programowaniu, takimi jak zasada KISS (Keep It Simple, Stupid).

Pytanie 25

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

A. skomputeryzowany po stronie użytkownika
B. zinterpretowany po stronie serwera
C. interpretowany po stronie użytkownika
D. skomputeryzowany po stronie serwera

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "zinterpretowany po stronie serwera" jest poprawna, ponieważ skrypty PHP są przetwarzane na serwerze, a wynik ich działania jest następnie przesyłany do przeglądarki klienta. PHP jest językiem skryptowym, który działa w kontekście serwera, co oznacza, że kod PHP jest wykonywany, a jego wynik (np. HTML, JSON, XML) jest generowany zanim trafi do klienta. W praktyce, gdy użytkownik odwiedza stronę napisanej w PHP, serwer uruchamia skrypt, przetwarza dane, korzysta z baz danych, a następnie zwraca gotowy dokument do przeglądarki. Jest to zgodne z zasadą architektury klient-serwer, w której serwer odpowiada za logikę aplikacji, natomiast klient koncentruje się na prezentacji danych. Przykładowe zastosowanie PHP obejmuje tworzenie dynamicznych stron internetowych, systemów zarządzania treścią (CMS), a także aplikacji webowych, które wymagają interakcji z bazą danych. W branży web developmentu standardem jest używanie PHP w połączeniu z bazami danych MySQL lub PostgreSQL, co czyni go popularnym wyborem dla programistów.

Pytanie 26

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_close();
B. mysqli_exit();
C. mysqli_commit();
D. mysqli_rollback();

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja mysqli_close() jest właściwym sposobem na zakończenie pracy z połączeniem do bazy danych MySQL w języku PHP. Użycie tej funkcji zwalnia zasoby skojarzone z danym połączeniem, co jest kluczowe w kontekście wydajności aplikacji. Po zakończeniu operacji na bazie danych, zwłaszcza w przypadku aplikacji intensywnie korzystających z zasobów, takich jak serwery webowe, ważne jest, aby zamknąć połączenie, aby uniknąć wycieków pamięci oraz ograniczyć liczbę otwartych połączeń. Przykładowo, po wykonaniu zapytań do bazy danych, stosując mysqli_close($connection), gdzie $connection to uchwyt do otwartego połączenia, można skutecznie zakończyć interakcję z bazą. Dobrą praktyką jest zamykanie połączeń w blokach finally, aby upewnić się, że zasoby są zwalniane nawet w przypadku wystąpienia wyjątków. Kiedy zamykasz połączenie, pamiętaj, że nie będziesz w stanie już korzystać z tego uchwytu połączenia, co jest zgodne z filozofią zarządzania zasobami, gdzie każdy otwarty zasób powinien być odpowiednio zamykany po zakończeniu jego użycia.

Pytanie 27

Funkcja PHP var_dump() prezentuje dane na temat zmiennej, w tym jej typ oraz wartość. Jakim wynikiem zakończy się poniższy fragment kodu?

$x = 59.85; var_dump($x);
A. int(59)
B. string(5) "59.85"
C. float(59.85)
D. array(2) { [0]=> int(59) [1]=> int(85) }

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "float(59.85)" jest poprawna, ponieważ funkcja var_dump() w PHP wyświetla szczegółowe informacje o typie i wartości zmiennej. W tym przypadku zmienna $x przypisuje wartość 59.85, która jest liczbą zmiennoprzecinkową (float). Zgodnie z dokumentacją PHP, typ float odnosi się do wartości liczbowych zawierających część dziesiętną, co jest dokładnie tym, co przedstawia nasza zmienna. Przykładowo, w wielu zastosowaniach, takich jak obliczenia finansowe, jest kluczowe prawidłowe rozróżnienie między liczbami całkowitymi a zmiennoprzecinkowymi, ponieważ mogą one znacząco wpływać na dokładność wyników. Przestrzeganie dobrych praktyk programistycznych w PHP obejmuje umiejętne korzystanie z var_dump() w celu diagnozowania typów danych i wartości w czasie rzeczywistym. Umożliwia to programistom lepsze zrozumienie, jakie dane są przetwarzane w aplikacji, co jest szczególnie przydatne podczas debugowania lub rozwijania skomplikowanych projektów.

Pytanie 28

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.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 29

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

for($i = 0; $i < 25; $i += 5) { ...... }
A. 25
B. 26
C. 5
D. 0

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pętla for w PHP, zdefiniowana jako for($i = 0; $i < 25; $i += 5), będzie wykonywana do momentu, gdy warunek $i < 25 będzie spełniony. Początkowa wartość $i to 0, a w każdej iteracji zwiększamy $i o 5. Wartości $i w kolejnych iteracjach będą wynosiły: 0, 5, 10, 15, 20. Po piątej iteracji, gdy $i osiągnie wartość 25, warunek $i < 25 przestanie być spełniony, co zakończy działanie pętli. W sumie, pętla wykona się dokładnie pięć razy. Zrozumienie działania pętli for jest kluczowe w programowaniu, ponieważ pozwala na automatyzację wielu zadań, co jest niezbędne w tworzeniu efektywnych i zoptymalizowanych aplikacji. Przykłady zastosowania to iteracja przez elementy tablic, generowanie numerów identyfikacyjnych czy przetwarzanie danych w bazach.

Pytanie 30

Która z podanych funkcji napisanych w PHP oblicza sumę połowy a oraz połowy b?

A. function licz($a, $b) { return $a/2 + $b; }
B. function licz($a, $b) { return $a/2 + $b/2; }
C. function licz($a, $b) { return ($a/2 + $b)/2; }
D. function licz($a, $b) { return 2/$a + 2/$b; }

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja 'function licz($a, $b) { return $a/2 + $b/2; }' jest naprawdę w porządku. Dokładnie wykonuje to, co pytanie wymaga: sumuje połowy zmiennych a i b. W PHP dzielenie robimy przez operator '/', a tu obie liczby są dzielone przez 2, więc dostajemy ich połówki. Potem te połówki dodajemy, co się zgadza z tym, o co chodzi w zadaniu. Na przykład, jak a = 6 i b = 4, to funkcja zwraca (6/2) + (4/2) = 3 + 2 = 5. Takie podejście jest super, bo kod jest czytelny i prosty. W ekipach programistycznych, gdzie różni ludzie mogą pracować nad tym samym kodem, to ma duże znaczenie. Nazwa 'licz' też jest całkiem zrozumiała i dobrze pasuje do tego, co ta funkcja robi, więc później można łatwo z niej korzystać czy zmieniać ją, jak będzie potrzeba.

Pytanie 31

<?php
$dane = fread(fopen("plik.txt", "r"), filesize("plik.txt"));
?>
Przedstawiony kod zapisany w języku PHP ma za zadanie
A. zapisać do pliku plik.txt wartość zmiennej dane
B. zmiennej dane przypisać wielkość pliku plik.txt
C. otworzyć plik plik.txt i jako wartość zmiennej dane przypisać rozmiar pliku
D. zmiennej dane przypisać zawartość pliku plik.txt

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W tym fragmencie kodu PHP wykonywana jest bardzo klasyczna operacja: odczyt całej zawartości pliku tekstowego do zmiennej. Funkcja fopen("plik.txt", "r") otwiera plik w trybie tylko do odczytu (read). Zwraca tzw. uchwyt do pliku, czyli zasób, którego potem używa fread. Następnie filesize("plik.txt") zwraca rozmiar pliku w bajtach. Ten rozmiar jest przekazywany jako drugi argument do fread, więc fread odczytuje dokładnie tyle bajtów z otwartego pliku i zwraca je jako ciąg znaków (string). Wynik trafia do zmiennej $dane. Czyli po wykonaniu tego skryptu w $dane znajduje się pełna zawartość pliku plik.txt. To dokładnie odpowiada treści poprawnej odpowiedzi: zmiennej dane przypisać zawartość pliku plik.txt. Z praktycznego punktu widzenia taki kod przydaje się, gdy chcemy np. przetworzyć plik tekstowy w pamięci: wyszukać w nim jakieś frazy, podmienić tekst, wygenerować podgląd, przesłać jego zawartość dalej przez sieć HTTP itd. W realnych projektach, zwłaszcza przy większych plikach, częściej stosuje się odczyt w kawałkach (pętlą), żeby nie ładować całego pliku naraz do pamięci, ale przy małych plikach podejście z fread + filesize jest jak najbardziej poprawne. Moim zdaniem warto też wiedzieć, że w nowszym PHP w prostszych przypadkach wygodniej użyć funkcji file_get_contents("plik.txt"), która robi praktycznie to samo, tylko krócej i czytelniej. Natomiast rozumienie mechanizmu fopen/fread jest ważne, bo to jest fundament pracy z plikami: otwarcie, odczyt/zapis, zamknięcie. Dobrą praktyką jest również domykanie uchwytu funkcją fclose, choć w tym przykładzie jej nie ma. W środowiskach produkcyjnych dodaje się jeszcze obsługę błędów (sprawdzanie, czy fopen się udało, czy plik istnieje, czy mamy uprawnienia). Mimo to, z punktu widzenia logiki pytania, sedno jest jedno: ten kod odczytuje zawartość pliku i przypisuje ją do zmiennej $dane.

Pytanie 32

Która z poniższych instrukcji jest równoważna z poleceniem switch w języku PHP?

switch ($liczba) {
    case 10:
    case 20: $liczba++; break;
    default: $liczba = 0;
}

Instrukcja 1.
if ($liczba==10)
    $liczba++;
else
    $liczba = 0;

Instrukcja 2.
if ($liczba==10 or $liczba==20)
    $liczba++;
else
    $liczba = 0;

Instrukcja 3.
if ($liczba==10 or $liczba==20)
    $liczba++;

Instrukcja 4.
if ($liczba==10 and $liczba==20)
    $liczba++;
else
    $liczba = 0;
A. Polecenie 1
B. Polecenie 2
C. Polecenie 4
D. Polecenie 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Instrukcja switch w języku PHP pozwala na wykonywanie różnych bloków kodu w zależności od wartości wyrażenia. W przykładzie, instrukcja switch sprawdza zmienną $liczba. Jeśli $liczba wynosi 10 lub 20, zostaje zwiększona o 1, natomiast w każdym innym przypadku przypisana jest wartość 0. Instrukcja 2 jest równoważna, ponieważ używa operatora or, co oznacza, że warunek zostanie spełniony, jeśli $liczba wynosi 10 lub 20, co dokładnie odwzorowuje logikę switch. Kluczowe jest zrozumienie, że operator or jest zgodny z wymaganiami logicznymi dla tego problemu, umożliwiając zwiększenie wartości zmiennej w obu przypadkach. Takie podejście jest zgodne z dobrymi praktykami programistycznymi, pozwalając na przejrzystość i efektywność kodu. Zrozumienie różnicy między operatorami and, or oraz or pozwala na bardziej elastyczne i zrozumiałe konstrukcje logiczne w programowaniu komercyjnym. Praktyka ta jest szczególnie ważna w optymalizowaniu warunkowych bloków kodu w dużych projektach.

Pytanie 33

W języku PHP zmienna typu float może przyjmować wartości

A. jedynie liczby całkowite
B. wartości logiczne
C. wartości zmiennoprzecinkowe
D. wartości nieliczbowe

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W języku PHP zmienne typu float są używane do reprezentowania liczb zmiennoprzecinkowych, co oznacza, że mogą przechowywać zarówno wartości całkowite, jak i wartości z częścią ułamkową. Typ float w PHP jest szczególnie przydatny w sytuacjach, gdzie precyzyjne obliczenia są niezbędne, na przykład w aplikacjach finansowych, gdzie obliczenia z użyciem pieniędzy wymagają uwzględnienia centów. W praktyce, operacje na zmiennych typu float mogą obejmować dodawanie, odejmowanie, mnożenie oraz dzielenie. Warto również zauważyć, że PHP obsługuje zarówno liczby w formacie dziesiętnym, jak i w notacji naukowej. Dobrą praktyką jest używanie funkcji takich jak round() do zaokrąglania wyników obliczeń zmiennoprzecinkowych, aby uniknąć problemów z precyzją, które mogą występować w wyniku ograniczeń reprezentacji liczb zmiennoprzecinkowych w pamięci komputera. W dokumentacji PHP, typ float jest jasno zdefiniowany jako liczba zmiennoprzecinkowa, co podkreśla jego kluczową rolę w różnych zastosowaniach programistycznych. Zrozumienie tego typu zmiennych jest fundamentem dla efektywnego programowania w PHP.

Pytanie 34

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", konieczne jest zastosowanie funkcji w PHP

A. strstr('ala ma psa')
B. strtolower('ala ma psa')
C. strtoupper('ala ma psa')
D. ucfirst('ala ma psa')

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja strtoupper() w PHP jest naprawdę przydatna do zamiany wszystkich liter w danym ciągu znaków na wielkie litery. Na przykład, kiedy mamy tekst 'ala ma psa' i użyjemy strtoupper('ala ma psa'), to dostaniemy 'ALA MA PSA'. To bardzo fajny trik, zwłaszcza gdy musimy ujednolicić format tekstu, na przykład jak ktoś wprowadza dane w różny sposób. Moim zdaniem, to jest ważne, bo różnice w wielkości liter mogą zepsuć nasze porównania. Weźmy pod uwagę sytuację, gdy użytkownik wpisuje różne rzeczy i chcemy, żeby wszystko było w jednym formacie przed dalszym przetwarzaniem, np. w bazach danych. To dobra funkcja, bo działa z różnymi zestawami znaków, więc jest świetnym narzędziem w PHP, nie tylko w aplikacjach webowych, ale też przy przetwarzaniu tekstów.

Pytanie 35

Która z poniższych funkcji w języku PHP zmieni słowo „kota” na „mysz” w zdaniu „ala ma kota”?

A. str_replace("ala ma kota", "kota", "mysz");
B. replace("kota", "mysz", "ala ma kota");
C. replace("ala ma kota", "kota", "mysz");
D. str_replace( "kota", "mysz", "ala ma kota");

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja str_replace w języku PHP jest odpowiedzialna za zamianę określonych ciągów znaków w danym tekście. W poprawnej odpowiedzi użyto jej w sposób zgodny z jej syntaksą, co jest kluczowe dla prawidłowego działania w tym kontekście. W przypadku str_replace, pierwszy argument to ciąg znaków, który chcemy zamienić, drugi argument to nowy ciąg, który ma zastąpić stary, a trzeci argument to tekst, w którym dokonujemy zamiany. W przedstawionym przykładzie, zamieniamy słowo 'kota' na 'mysz' w napisie 'ala ma kota', co skutkuje wynikiem 'ala ma mysz'. Tego rodzaju operacje są powszechnie stosowane w programowaniu webowym, szczególnie przy dynamicznym generowaniu treści, gdzie konieczne jest modyfikowanie tekstu na podstawie danych użytkownika lub baz danych. Warto również zwrócić uwagę na to, że stosowanie str_replace zgodnie z dokumentacją PHP jest standardem, który pozwala na uniknięcie wielu błędów związanych z manipulacją tekstem.

Pytanie 36

Która funkcja PHP obsługi bazy danych służy do kodowania polskich znaków?

A. mysqli_query()
B. mysqli_set_charset()
C. mysqli_fetch_assoc()
D. mysqli_connect()

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to mysqli_set_charset(), bo właśnie ta funkcja ustawia zestaw znaków (charset) dla połączenia z bazą danych w rozszerzeniu mysqli. W praktyce oznacza to, że dzięki niej PHP i serwer bazy danych (np. MySQL) „dogadują się”, w jakim kodowaniu mają być przesyłane i zapisywane teksty – w tym polskie znaki typu ą, ę, ł, ś itd. Bez poprawnie ustawionego charsetu bardzo łatwo o krzaczki, znaki zapytania zamiast liter albo problemy z sortowaniem tekstu. Moim zdaniem dobrą praktyką jest zawsze po nawiązaniu połączenia mysqli_connect natychmiast wywołać mysqli_set_charset($conn, 'utf8mb4'). Ten konkretny charset (utf8mb4) jest obecnie standardem de facto: obsługuje pełne Unicode, w tym emotikony, różne alfabety, a przy okazji bez problemu radzi sobie z polskimi znakami. Przykładowy, poprawny fragment kodu może wyglądać tak: $conn = mysqli_connect('localhost', 'user', 'haslo', 'baza'); mysqli_set_charset($conn, 'utf8mb4'); Dzięki temu każda instrukcja mysqli_query, każde pobieranie danych mysqli_fetch_assoc będzie już działać w odpowiednim kodowaniu. Warto pamiętać, że ustawienie charsetu powinno być spójne na wszystkich poziomach: konfiguracja bazy (collation i charset tabel), ustawienia połączenia (właśnie mysqli_set_charset) oraz nagłówki HTTP/HTML (meta charset="utf-8"). Dopiero takie podejście zgodne z dobrymi praktykami branżowymi zmniejsza ryzyko błędów związanych z kodowaniem tekstu, zwłaszcza w większych aplikacjach webowych. Jeśli robi się projekty komercyjne, to ignorowanie tej funkcji bardzo szybko mści się przy migracjach danych czy integracjach z innymi systemami.

Pytanie 37

Jakiego typu w języku PHP można użyć do przechowywania wielu wartości z opcją ich indeksowania?

A. double
B. boolean
C. float
D. array

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W PHP, jeśli chcesz przechowywać wiele wartości z możliwością ich indeksowania, to wybór pada na tablicę, czyli array. Tablice to naprawdę elastyczne struktury danych i mogą trzymać różne typy danych, takie jak liczby, teksty, obiekty, a nawet inne tablice. Fajną sprawą jest to, że możesz tworzyć tablice asocjacyjne, co oznacza, że przypisujesz wartości do konkretnych kluczy. Na przykład możesz stworzyć tablicę z imionami i numerami telefonów, jak w tym przykładzie: $contacts = array('Jan' => '123456789', 'Anna' => '987654321'). W PHP możesz łatwo dodawać i usuwać elementy, co jest super przydatne w programowaniu. A jakby tego było mało, tablice mogą być też wielowymiarowe, co sprawia, że idealnie nadają się do skomplikowanych danych, na przykład w bazach danych czy w aplikacjach webowych. Warto wiedzieć, że tablice w PHP są traktowane jako obiekty, więc masz dostęp do różnych funkcji, jak array_merge(), array_filter() czy array_map(). Dzięki nim manipulacja danymi staje się znacznie łatwiejsza. Tak więc odpowiedź 'array' to nie tylko dobry wybór, ale też kluczowa kwestia w programowaniu w PHP!

Pytanie 38

Który składnik nie jest wymagany do instalacji i uruchomienia systemu CMS Joomla!?

A. serwer WWW
B. platforma .NET
C. baza danych
D. parser PHP

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie wskazana została platforma .NET jako element, który nie jest wymagany do instalacji i działania Joomla!. Ten CMS jest napisany w PHP i z założenia działa w klasycznym stosie LAMP/LEMP, czyli Linux/Windows + serwer WWW (najczęściej Apache lub Nginx) + PHP + baza danych (MySQL/MariaDB, czasem PostgreSQL). Joomla! korzysta z interpretera PHP do wykonywania całej logiki aplikacji: obsługi logowania, generowania szablonów, pracy z bazą danych, modułów, komponentów itd. Serwer WWW (HTTP) odpowiada za przyjmowanie żądań z przeglądarki i przekazywanie ich do PHP, a baza danych przechowuje treści, użytkowników, konfigurację, menu, artykuły i całą resztę danych dynamicznych. Platforma .NET to zupełnie inny ekosystem technologiczny, typowy dla aplikacji pisanych w C#, ASP.NET, .NET Core, działających np. na IIS. Joomla! nie jest aplikacją .NET, więc nie potrzebuje środowiska uruchomieniowego .NET ani serwera IIS, żeby działać. W praktyce, w typowej firmie hostingowej, gdy chcesz uruchomić Joomla!, patrzysz czy jest obsługa PHP w odpowiedniej wersji, dostęp do bazy MySQL/MariaDB oraz czy serwer WWW pozwala na friendly URLs (mod_rewrite lub odpowiednik). To są realne wymagania. Można oczywiście postawić Joomla! także na Windowsie, ale dalej korzystasz z PHP i serwera WWW, a nie z ASP.NET. Moim zdaniem warto zapamiętać prostą zasadę: jeśli CMS jest napisany w PHP, to kluczowe są PHP, serwer HTTP i baza danych, a nie platformy typowe dla innych języków, jak .NET czy Java.

Pytanie 39

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. ciasteczkami
B. bazami danych
C. sesjami
D. formularzami

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Fragment kodu PHP przedstawiony w pytaniu dotyczy obsługi formularza i jest to typowa konstrukcja używana do walidacji danych przesyłanych metodą POST. W PHP dane z formularza przesyłane są za pomocą superglobalnej tablicy $_POST, co pozwala na ich łatwe przetwarzanie i walidację. W tym przypadku skrypt sprawdza, czy pole 'name' zostało wypełnione przez użytkownika. Funkcja empty() jest stosowana, aby wykryć, czy dane pole jest puste, co jest kluczowe dla zabezpieczenia aplikacji przed niekompletnymi danymi. Gdy pole jest puste, zmienna $nameErr zostaje ustawiona na wartość komunikatu błędu, informującą użytkownika o brakujących danych. Praktyczne zastosowanie tego rodzaju sprawdzania obejmuje różnorodne formularze internetowe, takie jak rejestracja użytkowników czy składanie zamówień. Dobre praktyki w PHP zalecają stosowanie walidacji po stronie serwera, ponieważ poprawia to bezpieczeństwo i integralność danych, nawet jeśli wcześniej dane były walidowane po stronie klienta za pomocą JavaScriptu. Warto również pamiętać o stosowaniu filtrów i walidacji danych wejściowych, aby zapobiec potencjalnym atakom, jak np. SQL injection

Pytanie 40

W języku PHP stwórz warunek, który będzie prawdziwy, gdy zmienna

$a 
będzie jakąkolwiek liczbą całkowitą mniejszą niż -10 lub gdy zmienna
$b 
będzie liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku powinno mieć postać
A. ($a < -10) or (($b > 25) or ($b < 75))
B. ($a < -10) or (($b > 25) and ($b < 75))
C. ($a < -10) and (($b > 25) and ($b < 75))
D. ($a < -10) and (($b > 25) or ($b < 75))

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wyrażenie logiczne ($a < -10) or (($b > 25) and ($b < 75)) jest poprawne, ponieważ spełnia warunki określone w treści zadania. Warunek ten sprawdza, czy zmienna $a jest mniejsza od -10 lub czy zmienna $b mieści się w przedziale od 25 do 75, co oznacza, że musi być większa niż 25 oraz mniejsza niż 75 jednocześnie. Takie podejście jest zgodne z zasadami logiki i jest typowe w programowaniu w PHP. Praktycznym zastosowaniem tego typu warunków może być filtrowanie danych użytkowników na podstawie wieku lub kwot transakcji, gdzie istotne jest spełnienie kilku kryteriów. Warto również zauważyć, że użycie operatora 'or' w tym przypadku jest kluczowe, gdyż pozwala na spełnienie przynajmniej jednego z warunków, co jest istotne w kontekście przyjmowania danych. Dobre praktyki w programowaniu sugerują, aby zawsze dokładnie definiować warunki logiczne oraz unikać nadmiarowych złożoności, co czyni kod bardziej czytelnym i łatwiejszym w utrzymaniu.