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: 24 kwietnia 2026 14:33
  • Data zakończenia: 24 kwietnia 2026 14:42

Egzamin zdany!

Wynik: 30/40 punktów (75,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

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

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

Pytanie 2

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. A.
B. B.
C. D.
D. C.
Widzę, że Twoja odpowiedź nie do końca trafiła w sedno. Wygląda na to, że masz jakieś nieporozumienia z tym skryptem PHP i funkcją asort(). Pamiętaj, że ten skrypt tworzy tablicę asocjacyjną z czterema elementami i potem sortuje je funkcją asort(). Ta funkcja działa na wartościach i zachowuje klucze, więc po sortowaniu powinno być: `[14] => PHP`, `[10] => Perl`, `[22] => Pike`, `[20] => Python`. Jak masz inną kolejność, to może sugerować, że coś poszło nie tak z sortowaniem. Nie zapominaj, że w PHP jest sporo funkcji sortujących, każda z nich ma swoje miejsce i zastosowanie, więc warto to poćwiczyć, żeby lepiej zrozumieć temat.

Pytanie 3

Po wykonaniu kodu PHP zostanie wyświetlona aktualna data zawierająca jedynie
echo date("Y");

A. dzień i miesiąc
B. dzień
C. rok
D. miesiąc i rok
Odpowiedź \"rok\" jest prawidłowa, ponieważ funkcja `date()` w PHP, w przypadku użycia formatu \"Y\", zwraca czterocyfrowy rok bieżącej daty. Funkcja ta jest kluczowa w kontekście programowania w PHP, szczególnie gdy chodzi o zarządzanie datami i czasem. W praktyce, używanie tej funkcji jest niezwykle istotne w aplikacjach internetowych, gdzie często jest potrzebne wyświetlenie daty w różnych formach. Na przykład, w systemach zarządzania treścią (CMS) można stosować funkcję `date()` do automatycznego generowania daty publikacji artykułów. Warto również zaznaczyć, że PHP oferuje różne formaty dla dat, a stosowanie standardów, takich jak format ISO 8601, może być przydatne w przypadku wymiany danych z innymi systemami. Używanie `date("Y")` to dobra praktyka, aby uniknąć problemów z lokalizacją i zapewnić spójność w wyświetlaniu daty na stronach internetowych."

Pytanie 4

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

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

Ilustracja do pytania
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
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 6

Z którego z pól klasy

class Dane {
    public $a;
    private $b;
    protected $c;
}
będzie można uzyskać dostęp z zewnątrz przy użyciu obiektu stworzonego jako instancja tej klasy?
A. Do pola $b.
B. Do wszystkich pól.
C. Do pola $a.
D. Do pola $c.
Odpowiedź 'Do pola $a' jest prawidłowa, ponieważ pole $a jest zdefiniowane jako publiczne, co oznacza, że jest dostępne z zewnątrz dla instancji klasy oraz dla kodu, który jest poza tą klasą. W praktyce, gdy tworzysz obiekt klasy Dane, możesz łatwo uzyskać dostęp do tego pola, na przykład za pomocą $obiekt->a. Zastosowanie publicznych pól jest typowe, gdy chcesz, aby dane były szeroko dostępne, na przykład w interfejsach API lub podczas tworzenia prostych klas modelujących dane. W przypadku pól prywatnych oraz chronionych, dostęp do nich jest ograniczony. Pole $b jest prywatne, co oznacza, że może być używane tylko wewnątrz tej samej klasy, a pole $c, będące chronionym, może być używane przez klasę i jej podklasy, ale nie przez kod zewnętrzny. Warto zaznaczyć, że dobre praktyki programowania obiektowego sugerują ograniczanie dostępu do pól, co sprzyja enkapsulacji i ochronie integralności danych, a publiczne pola należy stosować z ostrożnością, aby nie naruszyć zasad projektowania systemów oprogramowania.

Pytanie 7

Który z frameworków stworzono dla języka skryptowego PHP?

A. Symfony
B. Angular
C. Spring
D. ASP.NET
Wybór frameworka do rozwoju aplikacji webowych wymaga zrozumienia specyfiki i przeznaczenia danego narzędzia. W przypadku Spring, jest to framework stworzony z myślą o języku Java, skoncentrowany na tworzeniu aplikacji korporacyjnych. Jego zalety, takie jak wsparcie dla zależności i aspektowości, czynią go doskonałym wyborem dla programistów Java, ale nie mają zastosowania w kontekście PHP. Angular natomiast to framework JavaScript, który jest używany do budowy interaktywnych aplikacji jednostronicowych (SPA) w przeglądarkach. Oferuje zaawansowane techniki zarządzania stanem oraz komponentami, lecz nie jest przeznaczony do programowania w PHP. ASP.NET jest z kolei technologią opracowaną przez Microsoft dla języka C# i platformy .NET, co czyni go nieodpowiednim dla projektów PHP. Te błędne odpowiedzi mogą wynikać z nieporozumienia w zakresie technologii webowych i ich wzajemnych relacji. Kluczowym elementem przy wyborze frameworka jest zrozumienie, że każde z tych narzędzi jest optymalizowane do konkretnego języka programowania i jego architektury, co podkreśla znaczenie dobrego dopasowania technologii do wymagań projektu.

Pytanie 8

W PHP, aby usunąć białe znaki z początku i końca ciągu tekstowego, można skorzystać z funkcji

A. sort()
B. trim()
C. strlen()
D. time()
Funkcja trim() w języku PHP jest niezwykle przydatna do usuwania zbędnych spacji oraz innych białych znaków z początku i końca ciągu znaków. Jest to funkcjonalność, która jest często wykorzystywana w różnych aplikacjach, szczególnie w kontekście przetwarzania danych wejściowych od użytkowników, gdzie niechciane spacje mogą prowadzić do błędów podczas walidacji lub przechowywania danych w bazie danych. Przykład użycia funkcji trim() jest prosty: jeśli mamy zmienną $text = ' Przykladowy tekst '; używając trim($text), otrzymamy 'Przykladowy tekst'. Funkcja ta przyjmuje również drugi argument, który pozwala na określenie dodatkowych znaków do usunięcia. Na przykład trim($text, "a ") usunie zarówno spacje, jak i litery 'a' z końców ciągu. Zgodnie z dokumentacją PHP, trim() jest częścią standardowej biblioteki funkcji stringowych, co czyni ją niezawodnym narzędziem w każdej aplikacji PHP."

Pytanie 9

Jakie będzie rezultatem działania poniższego kodu PHP?

$a = $c = true; 
$b = $d = false;
if(($a && $b) || ($c && $d)) echo 'warunek1';
elseif(($a && $b) || ($c || $d)) echo 'warunek2';
elseif(($c && $d) || (!$a)) echo 'warunek3';
else echo 'warunek4';
A. warunek1
B. warunek4
C. warunek2
D. warunek3
Analizowany kod PHP to przykład użycia operatorów logicznych w strukturze sterującej if-else, gdzie każda z odpowiedzi reprezentuje wynik działania konkretnego bloku kodu. Zmienna $a i $c są zainicjalizowane jako true, natomiast $b i $d jako false. Zrozumienie tego jest kluczowe dla poprawnej analizy logicznej. Pierwszy warunek if z ($a && $b) || ($c && $d) nie zostaje spełniony, ponieważ zarówno (true && false) jak i (true && false) zwracają false, co skutkuje false || false, czyli false. Kolejna sekcja elseif obejmuje ($a && $b) || ($c || $d). Tutaj (true && false) zwraca false, ale (true || false) daje true, co prowadzi do false || true, czyli true, co spełnia warunek i 'warunek2' zostaje wyświetlony. Trzeci warunek elseif, sprawdzający ($c && $d) || (!$a), nie jest rozpatrywany, ponieważ poprzedni warunek był już true. Warto podkreślić znaczenie logicznych operatorów w programowaniu: && i || odpowiadają za łączenie warunków, a ich poprawne zrozumienie pozwala na efektywne modelowanie logiki aplikacji. Typowym błędem jest mylenie znaczenia tych operatorów, co może prowadzić do błędnych decyzji warunkowych w kodzie. Programiści powinni zawsze upewniać się, że logika warunków jest zgodna z zamierzonym działaniem programu, a testowanie jest kluczowym elementem tego procesu. Zastosowanie testów jednostkowych może pomóc w zapewnieniu prawidłowego działania skomplikowanych struktur logicznych, pozwalając na wykrycie i korektę potencjalnych błędów logicznych.

Pytanie 10

Skrypt strony internetowej stworzony w PHP

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

Pytanie 11

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 3
C. Polecenie 4
D. Polecenie 2
Instrukcje warunkowe if-else są często używane w programowaniu do kontrolowania przepływu programu na podstawie wartości logicznych. W kontekście podanego pytania, istotne jest zrozumienie, jak różne operatory logiczne wpływają na działanie tych instrukcji. Instrukcja 1 zakłada, że zmienna $liczba musi być równa 10, by wykonać operację inkrementacji, co nie jest zgodne z oryginalnym kodem switch, ponieważ pomija wartość 20. Taka interpretacja mogłaby prowadzić do błędów w sytuacjach, gdzie obie wartości są dopuszczalne. Instrukcja 3 używa operatora or, co wydaje się poprawne, ale brak bloku else powoduje brak możliwości przypisania wartości 0 w sytuacjach, gdy $liczba nie wynosi 10 ani 20. To oznacza niekompletność logiczną i potencjalne błędy. Instrukcja 4 stosuje operator and, co wymaga, aby $liczba jednocześnie wynosiła 10 i 20, co jest logicznie niemożliwe w tym kontekście, prowadząc do nieprawidłowego działania. Taka nieprawidłowa logika może być wynikiem błędnego zrozumienia warunków logicznych, co jest częstym problemem wśród początkujących programistów. Zrozumienie różnic między tymi operatorami jest kluczowe dla tworzenia poprawnych i efektywnych konstrukcji warunkowych w dowolnym języku programowania, w tym w PHP. Poprawne użycie instrukcji if-else oraz operatorów logicznych jest fundamentem wielu aplikacji, a błędy mogą prowadzić do nieprzewidywalnego działania programu.

Pytanie 12

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

A. zinterpretowany po stronie serwera
B. interpretowany po stronie użytkownika
C. skomputeryzowany po stronie użytkownika
D. skomputeryzowany po stronie serwera
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 13

W języku PHP operator do wyznaczania reszty z dzielenia to:

A. #
B. &
C. @
D. %
Operatorem reszty z dzielenia w języku PHP jest znak procenta (%). Umożliwia on obliczenie reszty z dzielenia dwóch liczb całkowitych. Na przykład, jeśli zastosujemy wyrażenie "5 % 2", wynikiem będzie "1", ponieważ 5 dzieli się przez 2 z resztą 1. Operator ten jest niezwykle przydatny w wielu kontekstach programistycznych, takich jak algorytmy, które wymagają określenia, czy liczba jest parzysta czy nie. W takim przypadku, używając wyrażenia "if ($number % 2 == 0)", możemy łatwo sprawdzić, czy liczba jest parzysta. Ponadto, operator % jest często używany w pętlach do określenia, co pewne działania powinny być wykonywane co n-ty cykl, co jest szczególnie przydatne w grach i aplikacjach interaktywnych. Stosowanie operatora reszty z dzielenia jest zgodne z najlepszymi praktykami programistycznymi, ponieważ umożliwia efektywne i czytelne rozwiązania w kodzie.

Pytanie 14

W aplikacji webowej komunikat powinien być wyświetlany jedynie wtedy, gdy użytkownik odwiedza stronę po raz pierwszy. Jakiej funkcji PHP należy użyć w tym przypadku?

A. setcookie
B. session_destroy
C. mysqli_change_user
D. define
Funkcja setcookie w PHP jest wykorzystywana do ustawiania ciasteczek w przeglądarkach użytkowników. Ciasteczka te mogą przechowywać różne informacje, co umożliwia personalizację doświadczeń użytkownika na stronie internetowej. W kontekście opisanego zagadnienia, można zastosować setcookie do zdefiniowania ciasteczka, które będzie informować, że dany użytkownik odwiedza stronę po raz pierwszy. Przykładowe zastosowanie może wyglądać tak: jeśli na stronie nie ma określonego ciasteczka (np. 'first_visit'), można wyświetlić komunikat powitalny i wówczas ustawić ciasteczko z odpowiednim czasem ważności, co pozwala na ukrycie tego komunikatu przy kolejnych wizytach. Użycie tej funkcji jest zgodne z najlepszymi praktykami w zakresie zarządzania sesjami użytkowników, ponieważ pozwala na zachowanie stanu użytkownika w sposób prosty i efektywny. Dodatkowo, dzięki ciasteczkom, można analizować zachowanie użytkowników, co pozwala na dalsze optymalizowanie doświadczeń na stronie.

Pytanie 15

W języku PHP przeprowadzono operację przedstawioną w ramce. Jak można postąpić, aby wyświetlić wszystkie wyniki tego zapytania?

$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. pokazać zmienną $db
D. zaindeksować zmienną tab, tab[0] to pierwsze imię
W przypadku wyświetlania wyników zapytania SQL w PHP, ważne jest zrozumienie mechanizmu działania funkcji dostępnych w bibliotece mysqli. Wśród niewłaściwych koncepcji można wymienić próbę wyświetlenia zmiennej $db, która jest zazwyczaj uchwytem połączenia do bazy danych a nie bezpośrednim wynikiem zapytania. To podejście często prowadzi do błędów logicznych, ponieważ $db reprezentuje połączenie a nie dane wynikowe. Polecenie mysql_fetch, choć kiedyś używane w starszej wersji PHP, obecnie nie jest zalecane z powodu przestarzałości i braku wsparcia dla rozszerzenia mysql, które zostało zastąpione przez mysqli i PDO. Próba zaindeksowania zmiennej tab jako tab[0] bez odpowiedniego pobrania danych wynikowych jest również błędna. Zmienna tab przechowuje rezultat zapytania w postaci obiektu typu mysqli_result, a bez użycia odpowiednich funkcji fetch nie można bezpośrednio uzyskać dostępu do danych. Takie podejście wynika z niezrozumienia struktury danych zwracanych przez zapytania. Iteracyjne pobieranie wyników za pomocą funkcji typu mysqli_fetch_row czy mysqli_fetch_assoc jest standardem w nowoczesnych aplikacjach PHP, ponieważ umożliwia elastyczne i efektywne zarządzanie danymi. Zastosowanie odpowiednich mechanizmów fetch pozwala na bezbłędne iterowanie przez wiersze wynikowe co jest kluczowe dla poprawnego przetwarzania danych z bazy.

Pytanie 16

Jakie funkcje należy najpierw wywołać, aby aplikacja PHP mogła nawiązać połączenie z bazą danych?

A. mysql_create_db
B. mysql_select_db
C. mysqli_connect
D. mysqli_close
Odpowiedź 'mysqli_connect' jest prawidłowa, ponieważ to właśnie ta funkcja jest pierwszym krokiem w nawiązywaniu połączenia z bazą danych w PHP. Funkcja ta przyjmuje parametry takie jak nazwa hosta, użytkownik, hasło oraz nazwa bazy danych, co pozwala na zbudowanie komunikacji między aplikacją a bazą danych. Dzięki temu, programista uzyskuje dostęp do danych przechowywanych w bazie, co jest kluczowe dla dynamicznych aplikacji webowych. Przykład użycia tej funkcji to: $link = mysqli_connect('localhost', 'username', 'password', 'database_name');. Warto pamiętać, że dobrym zwyczajem jest również sprawdzenie, czy połączenie zostało nawiązane poprawnie, co można zrobić za pomocą instrukcji if, aby uniknąć błędów w działaniu aplikacji. W kontekście najlepszych praktyk, ważne jest, aby unikać używania przestarzałych funkcji, takich jak mysql_connect, które nie obsługują nowoczesnych standardów bezpieczeństwa. Użycie mysqli_connect zapewnia większą funkcjonalność i bezpieczeństwo, a także jest zgodne z aktualnymi standardami programowania w PHP.

Pytanie 17

W języku PHP, aby otworzyć już istniejący plik lektury.txt w trybie dodawania treści, tak aby wskaźnik pliku został umieszczony na końcu tego pliku należy zastosować instrukcję

A. fopen("lektury.txt", "w")
B. fopen("lektury.txt", "x")
C. fopen("lektury.txt", "r")
D. fopen("lektury.txt", "a")
W tym zadaniu kluczowe są dwa elementy: tryb otwarcia pliku oraz pozycja wskaźnika pliku. W PHP funkcja fopen() przyjmuje drugi parametr właśnie po to, żeby określić, co chcemy zrobić z plikiem: tylko czytać, tylko pisać, nadpisywać, dopisywać, tworzyć nowy itd. Pomyłki biorą się najczęściej z tego, że ktoś zna ogólne działanie funkcji, ale nie pamięta dokładnie znaczenia poszczególnych liter. Tryb "r" oznacza otwarcie pliku tylko do odczytu. Wskaźnik pliku ustawiany jest na początku, a nie na końcu. W tym trybie nie wolno pisać do pliku – próba użycia fwrite() skończy się ostrzeżeniem lub błędem. To dobry wybór, gdy chcemy np. wczytać konfigurację lub treść pliku, ale zupełnie nie nadaje się do dopisywania nowych danych. Typowym błędem myślowym jest założenie, że skoro fopen otwiera plik, to zawsze można do niego pisać. Niestety, nie – tryb ma tutaj kluczowe znaczenie. Tryb "w" otwiera plik do zapisu, ale przy tym kasuje jego dotychczasową zawartość (truncation). W praktyce oznacza to, że gdy użyjemy fopen("lektury.txt", "w"), cały wcześniejszy tekst zostanie usunięty, a wskaźnik pliku znajdzie się na początku pustego pliku. To jest bardzo ważne: "w" jest dobre, gdy chcemy stworzyć nową wersję pliku od zera, np. generowany raport, ale całkowicie sprzeczne z wymaganiem zadania, które mówi o „dodawaniu treści” do istniejącego pliku bez utraty danych. Tryb "x" z kolei służy do tworzenia nowego pliku i zakończy się błędem, jeśli plik już istnieje. To mechanizm ochronny, używany często tam, gdzie nie chcemy przypadkiem nadpisać istniejącego pliku (np. przy generowaniu unikalnych plików). W kontekście pytania jest to odwrotność tego, co trzeba: my właśnie chcemy pracować z już istniejącym plikiem, a nie wymuszać jego nowość. Moim zdaniem najczęstsza pułapka polega na myleniu „w” i „a”. Oba tryby umożliwiają zapis, ale tylko "a" gwarantuje, że wskaźnik ustawi się na końcu, a dane będą dopisywane, a nie nadpisywane. Dlatego, gdy w zadaniu pojawia się fraza „tryb dodawania treści” i „wskaźnik na końcu pliku”, praktycznie zawsze chodzi o tryb append, czyli właśnie "a".

Pytanie 18

W PHP konstrukcja foreach stanowi rodzaj

A. wyboru, dla elementów tablicy
B. pętli, wyłącznie dla elementów tablicy
C. warunkową, niezależnie od typu zmiennej
D. pętli, niezależnie od typu zmiennej
Pętla foreach w PHP to taki fajny sposób, żeby przejść przez wszystkie elementy tablicy. Została stworzona, żeby programiści mogli łatwiej ogarnąć przetwarzanie danych w tablicach, które są super ważnym typem danych w tym języku. Dzięki foreach można w prosty sposób dostać się do każdego elementu tablicy, bez zabawy w indeksy, co sprawia, że kod jest bardziej przejrzysty. Działa to tak: dla każdego elementu w tablicy robimy coś tam, co czyni ją świetnym narzędziem do pracy z większą ilością danych. Na przykład, można stworzyć tablicę z imionami i potem za pomocą foreach wypisać je na ekran. Fajnie jest też wiedzieć, że foreach nie zadziała z innymi typami danych, więc to ograniczenie, o którym trzeba pamiętać. W PHP używa się tej instrukcji na co dzień, co pokazuje, jak bardzo jest przydatna i jak bardzo ułatwia życie programistom.

Pytanie 19

W języku PHP zapis $b++ jest równoważny zapisowi

A. $b == $b + $b
B. $b = $b + 1
C. $b = $b + $b
D. $b == $b
Zapis $b++ w PHP to tak zwany operator inkrementacji w wersji postfiksowej. Oznacza on zwiększenie wartości zmiennej b dokładnie o 1. W praktyce, po wykonaniu tej instrukcji, b będzie miało wartość b + 1. Dlatego zapis ten jest równoważny instrukcji przypisania $b = $b + 1. Warto zauważyć, że jest to uproszczona, bardziej czytelna forma, bardzo często wykorzystywana w pętlach, np. for ($i = 0; $i < 10; $i++). Właśnie w takim kontekście operator ++ jest praktycznie standardem branżowym i każdy programista webowy powinien go rozumieć bez zastanawiania. Moim zdaniem używanie $b++ zamiast $b = $b + 1 poprawia czytelność kodu, szczególnie gdy mamy dużo operacji na licznikach, indeksach tablic czy licznikach iteracji. Trzeba też pamiętać o różnicy między $b++ a ++$b. W wersji postfiksowej (b++) najpierw zwracana jest stara wartość, a dopiero potem zmienna jest zwiększana. W wersji prefiksowej (++b) najpierw zwiększana jest wartość, a potem zwracany jest już nowy wynik. W prostych przypadkach, takich jak samodzielna linijka $b++; albo $b = $b + 1;, efekt końcowy w zmiennej b jest ten sam. Natomiast w wyrażeniach typu $c = $b++; różnica ma znaczenie. W codziennej pracy z PHP operatory ++ i -- są fundamentem przy pisaniu pętli, prostych algorytmów zliczania, paginacji czy obsługi indeksów w tablicach. Dobra praktyka to stosowanie tych skróconych operatorów tam, gdzie naprawdę chodzi tylko o zwiększenie lub zmniejszenie o 1, bo od razu widać intencję programisty i kod jest bardziej zwięzły, bez zbędnego „szumu”.

Pytanie 20

W języku PHP przeprowadzono operację zaprezentowaną w ramce. Jak można wyświetlić wszystkie rezultaty tego zapytania?

Ilustracja do pytania
A. pokazać zmienną $db
B. zaindeksować zmienną tab, gdzie tab[0] to pierwsze imię
C. użyć polecenia mysql_fetch
D. zastosować pętlę z poleceniem mysqli_fetch_row
Opcja wyświetlenia zmiennej $db nie jest poprawna ponieważ $db reprezentuje połączenie z bazą danych a nie wyniki zapytania. Wydobycie danych wymaga co najmniej jednego kroku przetwarzania. Użycie polecenia mysql_fetch również jest błędne ponieważ funkcje z prefiksem mysql_ są przestarzałe i niezalecane do użycia w nowych projektach. PHP od wersji 7 całkowicie usunął wsparcie dla tych funkcji co oznacza że próba ich użycia w nowoczesnych środowiskach skutkowałaby błędami. Indeksowanie zmiennej tab jako tab[0] nie jest adekwatne gdyż mysqli_query zwraca zasób bazy danych a nie tablicę. Aby uzyskać dostęp do danych należy zastosować odpowiednią metodę przetwarzania zasobu taką jak mysqli_fetch_row mysqli_fetch_assoc lub inne odpowiednie funkcje dostępne w bibliotece mysqli. Typowe błędy myślowe to zakładanie że wyniki zapytania są automatycznie dostępne jako tablica co nie jest prawdą w przypadku pracy z zasobami bazodanowymi. Zrozumienie poprawnego przetwarzania zasobów jest kluczowe w projektowaniu aplikacji bazodanowych co podkreśla znaczenie praktyki w pracy z nowoczesnymi interfejsami API w PHP.

Pytanie 21

Przedstawiony kod PHP nawiązuje połączenie z serwerem bazy danych. Jakiego typu operacje powinny się znaleźć w instrukcji warunkowej w miejscu trzech kropek?

$db = mysqli_connect("localhost", "root", "qwerty", "baza1");
if (!$db) {
...
}
A. Przetwarzanie danych uzyskanych z bazy
B. Zamknięcie połączenia z bazą danych
C. Informacja o pomyślnym nawiązaniu połączenia z bazą
D. Obsługa błędu przy nawiązywaniu połączenia
Obsługa błędu połączenia jest kluczowym elementem przy nawiązywaniu połączenia z bazą danych w PHP. Gdy używamy funkcji mysqli_connect, istotne jest, aby sprawdzić, czy połączenie zostało nawiązane poprawnie. W przypadku, gdy połączenie nie powiedzie się, funkcja mysqli_connect zwraca fałsz. W takich sytuacjach warto zaimplementować odpowiednią obsługę błędów, aby zrozumieć, co poszło nie tak, oraz działania, które powinny być podjęte. Dobrą praktyką jest wykorzystanie funkcji mysqli_connect_errno oraz mysqli_connect_error, które dostarczają szczegółowych informacji o błędzie. Na przykład, można wyświetlić komunikat o błędzie lub zalogować go do pliku w celu dalszej analizy. W ten sposób programista może szybko zidentyfikować problem, czy to związany z błędnym loginem, hasłem, czy problemami z serwerem bazy danych. Implementacja takiej obsługi błędów zwiększa stabilność aplikacji oraz ułatwia późniejsze diagnozowanie problemów, co jest istotne w profesjonalnym środowisku programistycznym.

Pytanie 22

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

A. mysqli_connect()
B. mysqli_query()
C. mysqli_set_charset()
D. mysqli_fetch_assoc()
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 23

W PHP zmienna $_GET stanowi zmienną

A. predefiniowaną, służącą do przesyłania informacji do skryptów PHP przez adres URL
B. zwykłą, utworzoną przez autora strony
C. utworzoną przez autora strony, przeznaczoną do przesyłania danych z formularza przez adres URL
D. predefiniowaną, wykorzystywaną do zbierania danych formularza po nagłówkach żądania HTTP (informacje z formularza nie są widoczne w URL)
Odpowiedzi, które wskazują na to, że zmienna $_GET jest zwykłą zmienną lub jest definiowana przez twórcę strony, są nieprawidłowe. $_GET jest superglobalną tablicą, co oznacza, że jej dostępność jest zapewniona w całym skrypcie bez potrzeby wcześniejszego deklarowania. Zrozumienie różnicy między zmiennymi predefiniowanymi a tymi zdefiniowanymi przez użytkownika jest kluczowe dla właściwego zarządzania danymi w PHP. Ponadto, odpowiedzi sugerujące, że $_GET służy do gromadzenia wartości formularza po nagłówkach zlecenia HTTP, mylą metodę GET z metodą POST. W przeciwieństwie do POST, dane przesyłane za pomocą GET są widoczne w adresie URL, co czyni je mniej bezpiecznymi dla wrażliwych danych. Mówiąc o formularzach, $_GET jest jedynie jedną z metod przesyłania danych, obok $_POST i $_REQUEST, z których każda ma swoje specyficzne zastosowania i ograniczenia. Generalnie, korzystanie z $_GET jest odpowiednie do przesyłania niewielkich ilości danych, takich jak parametry zapytań, ale należy być świadomym, że wykorzystywanie tej metody z danymi wrażliwymi jest ryzykowne i należy unikać tego podejścia w praktyce. Dbając o bezpieczeństwo aplikacji, warto zrozumieć te różnice i stosować się do dobrych praktyk dotyczących przetwarzania danych wejściowych.

Pytanie 24

W języku PHP wyniki zapytania z bazy danych zostały pobrane przy użyciu polecenia mysql_query(). Aby uzyskać dane w postaci wierszy z tej zwróconej kwerendy, należy użyć polecenia:

A. mysql_field_len()
B. mysql_list_fields()
C. mysql_fetch_row()
D. mysql_fetch_lengths()
Funkcja mysql_fetch_row() to naprawdę ważne narzędzie w PHP, które pomaga w pracy z wynikami zapytań SQL. Kiedy wykonasz zapytanie za pomocą mysql_query(), dostajesz zestaw wyników, który można traktować jak tablicę. Używając mysql_fetch_row(), możesz pobrać jeden wiersz danych z tego zestawu, a to przychodzi w formie tablicy numerycznej. To bardzo przydatne, szczególnie gdy chcesz przejść przez wszystkie wiersze, które zwraca zapytanie. Na przykład, przy wyświetlaniu danych w HTML. Super jest to, że ta funkcja jest prosta w użyciu i działa efektywnie, dlatego tak wielu programistów ją ceni. Pamiętaj, żeby zawsze zabezpieczać zapytania przed SQL Injection. Możesz to zrobić, stosując przygotowane zapytania (prepared statements) albo funkcje, jak mysqli_query() z mysqli_fetch_row(). Warto też wiedzieć, że jeśli nie ma już więcej wierszy do pobrania, to mysql_fetch_row() zwróci false. Można to wykorzystać do kontrolowania pętli w kodzie, co jest przydatne.

Pytanie 25

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

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. otrzymania kodu błędu, gdy wstawienie wiersza się nie powiodło
C. pobrania najwyższego indeksu bazy, aby po jego zwiększeniu wstawić pod niego dane
D. uzyskania id ostatnio dodanego wiersza
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 27

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

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

Pytanie 28

Jak umieścić komentarz w kodzie PHP?

A. /? ... ?/
B. <? ... ?>
C. <!-- ... -->
D. /* ... */
Komentarze w kodzie PHP są kluczowym elementem, który pozwala programistom na dodawanie wyjaśnień, notatek czy informacji o kodzie, co znacznie ułatwia jego późniejsze zrozumienie i konserwację. Komentarze w PHP można umieszczać za pomocą podwójnego ukośnika (//) dla pojedynczych linii lub za pomocą /* ... */ dla komentarzy wieloliniowych. Wybrana odpowiedź /* ... */ jest poprawna, ponieważ umożliwia dodawanie dłuższych bloków tekstu, co jest praktyczne w przypadku skomplikowanych funkcji czy klas. Stosowanie komentarzy jest zgodne z dobrymi praktykami programowania, które zalecają dokumentowanie kodu, aby ułatwić współpracę w zespole oraz pomóc innym programistom w zrozumieniu funkcji i celu poszczególnych fragmentów kodu. Na przykład, podczas tworzenia złożonej aplikacji webowej, dobrze udokumentowany kod pozwoli zespołowi szybciej rozwiązywać problemy i wprowadzać zmiany, co jest kluczowe w dynamicznie zmieniającym się środowisku IT.

Pytanie 29

Metoda w języku PHP, która pełni rolę konstruktora, nosi nazwę

A. _construct
B. _create
C. _new
D. _open
Konstruktor w języku PHP to specjalna metoda, która jest wywoływana automatycznie w momencie tworzenia obiektu danej klasy. Nazwa konstruktora w PHP to __construct, co jest zgodne z konwencjami programistycznymi i standardem PSR-1. Zastosowanie konstruktora pozwala na inicjalizację obiektu oraz przekazywanie parametrów, które mogą być wykorzystane w dalszej części kodu. Na przykład, jeśli mamy klasę `Samochod`, możemy zdefiniować konstruktor, który przyjmuje parametry takie jak marka, model i rok produkcji. Dzięki temu każdy nowo utworzony obiekt samochodu będzie miał ustawione te wartości. Stosowanie konstruktorów jest powszechną praktyką w programowaniu obiektowym, co sprzyja lepszemu zarządzaniu kodem i jego czytelności. Przykład: `public function __construct($marka, $model, $rok) { $this->marka = $marka; $this->model = $model; $this->rok = $rok; }`. Warto również pamiętać, że konstruktor może dziedziczyć właściwości i metody z klasy rodzicielskiej, co jest kluczowe w kontekście programowania obiektowego.

Pytanie 30

W aplikacji webowej komunikat powinien być wyświetlany jedynie w przypadku, gdy dany użytkownik odwiedza stronę po raz pierwszy. Którą funkcję PHP należy wykorzystać w tym celu?

A. setcookie
B. session_destroy
C. define
D. mysqli_change_user
Funkcja setcookie w PHP jest kluczowym narzędziem do zarządzania ciasteczkami. Ciasteczka są małymi plikami przechowywanymi na urządzeniu użytkownika, które mogą być wykorzystywane do różnych celów, w tym do śledzenia sesji użytkownika, personalizacji doświadczeń oraz, w tym przypadku, do kontrolowania wyświetlania komunikatów. Gdy użytkownik odwiedza stronę po raz pierwszy, można ustawić ciasteczko, które informuje system, że użytkownik jest nowym odwiedzającym. Na przykład, można ustawić ciasteczko o nazwie "first_visit" z wartością "1", co oznacza, że komunikat powinien się pojawić. Przy kolejnych wizytach, przed wyświetleniem komunikatu, system sprawdzi, czy to ciasteczko istnieje. Jeśli tak, komunikat nie zostanie wyświetlony. Przykładowa implementacja wyglądałaby tak: if (!isset($_COOKIE['first_visit'])) { setcookie('first_visit', '1', time() + 3600); // Ciasteczko ważne przez 1 godzinę echo 'Witamy na stronie!'; // Wyświetlenie komunikatu } Dzięki temu podejściu można efektywnie zarządzać doświadczeniem użytkownika i unikać zasypywania ich komunikatami przy każdej wizycie, co jest zgodne z najlepszymi praktykami UX.

Pytanie 31

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 32

W języku PHP chcąc wyświetlić ciąg n znaków @, należy użyć funkcji

A. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki(@, $n);

B. function znaki($i){
   for($i = 0; $i < $n; $i++)
     print("@");
}
znaki($i);

C. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki($n);

D. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki("@", $n);
A. B.
B. A.
C. D.
D. C.
Właśnie wybrałeś odpowiedź D i jest to absolutnie poprawne. W języku PHP, funkcja, o której mówimy, jest standardowym sposobem wyświetlania ciągu n znaków. Działa to poprzez użycie dwóch argumentów: znaku, który ma być wyświetlony, i liczby n, która określa, ile razy ten znak powinien zostać wyświetlony. W tym przypadku, użyto znaku '@'. Następnie, w pętli for, zmienna $i jest inkrementowana od 0 do n-1, a funkcja print wyświetla znak. To jest dobrym przykładem praktycznego zastosowania pętli w PHP, które są niezwykle przydatne w wielu różnych scenariuszach, od generowania list do manipulowania danymi. Pamiętaj, że zrozumienie, jak działa ta konkretna funkcja, może pomóc Ci lepiej zrozumieć, jak działają pętle i funkcje print w PHP.

Pytanie 33

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

A. serwer WWW
B. platforma .NET
C. parser PHP
D. baza danych
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 34

Wskaż sposób oznaczania komentarzy wielowierszowych w kodzie PHP.

A. <!-- treść komentarza -->
B. // treść komentarza
C. /* treść komentarza*/
D. / treść komentarza/
Poprawna odpowiedź to zapis w postaci /* treść komentarza */. W języku PHP taki zapis oznacza komentarz wielowierszowy, czyli taki, który może rozciągać się na kilka linii kodu. Komentarz zaczyna się znakiem /* i kończy się dokładnie sekwencją */. Wszystko, co znajduje się pomiędzy tymi znacznikami, jest ignorowane przez interpreter PHP i nie ma wpływu na działanie programu. Można to wykorzystać np. tak: /* Funkcja liczy sumę dwóch liczb Parametry: $a – pierwsza liczba $b – druga liczba */ function suma($a, $b) { return $a + $b; } Z mojego doświadczenia dobrze jest używać komentarzy wielowierszowych do opisywania całych bloków logiki, np. większych funkcji, klas albo skomplikowanych fragmentów algorytmu. W dokumentacji i w dobrych projektach często spotyka się też komentarze stylizowane na PHPDoc, np.: /** * Zwraca sumę dwóch liczb całkowitych * @param int $a * @param int $b * @return int */ To nadal jest zwykły komentarz wielowierszowy, tylko używany zgodnie z pewnym standardem narzędziowym. Moim zdaniem warto wyrabiać sobie nawyk pisania czytelnych komentarzy, ale jednocześnie nie przesadzać – komentarz wielowierszowy powinien wyjaśniać „dlaczego” coś jest zrobione w określony sposób, a nie przepisywać oczywistości z kodu. W praktyce w PHP używa się trzech form komentarzy: // dla jednowierszowych, # (rzadziej, ale też działa) oraz właśnie /* */ dla wielowierszowych. Znajomość tej składni to absolutna podstawa przy pracy z większymi projektami PHP, bo bez niej kod szybko staje się nieczytelny dla innych programistów.

Pytanie 35

Jakiego języka skryptowego ogólnego zastosowania powinno się użyć do tworzenia aplikacji internetowych, które są zintegrowane z HTML i działają na serwerze?

A. JavaScript
B. C#
C. Perl
D. PHP
PHP (Hypertext Preprocessor) to język skryptowy ogólnego przeznaczenia, który został zaprojektowany do tworzenia dynamicznych stron internetowych, co czyni go idealnym rozwiązaniem do budowy aplikacji webowych. Jako język uruchamiany po stronie serwera, PHP generuje HTML, który jest następnie przesyłany do przeglądarki użytkownika, co pozwala na interakcję z bazami danych, sesjami użytkowników i innymi elementami. Dzięki bogatej bibliotece funkcji oraz rozbudowanej społeczności, PHP jest często wykorzystywany w aplikacjach takich jak WordPress, Drupal czy Joomla. Ponadto, PHP wspiera różnorodne bazy danych, w tym MySQL, co umożliwia tworzenie zaawansowanych aplikacji zintegrowanych z danymi. Przykładem dobrych praktyk w PHP jest stosowanie wzorców projektowych, takich jak MVC (Model-View-Controller), które zwiększają czytelność i modularność kodu. Dzięki temu, programiści mogą łatwiej utrzymywać i rozwijać aplikacje, co jest kluczowe w dynamicznie zmieniającym się świecie technologii webowych.

Pytanie 36

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

Ilustracja do pytania
A. ZAWSZE SPRAWDZ SWOJ KOD
B. zAwSZe sPrAwDz SWOJ kOd
C. zawsze sprawdz swoj kod
D. ZaWszE
Funkcja strtolower w PHP służy do konwersji ciągu znaków na małe litery. W podanym przykładzie zmienna Napis zawiera wartość ZaWsze SpRaWdZ swoj KoD, która jest mieszanką wielkich i małych liter. Po zastosowaniu funkcji strtolower do tej zmiennej, wynikowy ciąg zostaje przetworzony tak, że wszystkie litery są zamieniane na małe. Dlatego w zmiennej Nowy_Napis znajdzie się tekst zawsze sprawdz swoj kod. Użycie strtolower jest częste, gdy chcemy ujednolicić dane tekstowe, np. porównując adresy email czy nazwy użytkowników, aby uniknąć rozróżnienia wielkości liter. Jest to zgodne z dobrą praktyką programistyczną, która polega na zapewnieniu spójności danych poprzez ich normalizację. W kontekście aplikacji webowych często stosuje się tę funkcję do przetwarzania danych wejściowych od użytkowników, aby uzyskać jednolite formatowanie i uniknąć potencjalnych błędów przy wyszukiwaniu lub porównywaniu danych. Praktyczne zastosowanie tej funkcji ułatwia zarządzanie danymi i upraszcza logikę biznesową aplikacji.

Pytanie 37

W języku PHP do zmiennej a wprowadzono tekst, w którym wielokrotnie występuje fraza Kowalski. Jakim poleceniem można jednocześnie zamienić wszystkie pojawienia się słowa Kowalski na słowo Nowak w zmiennej a?

A. $a = str_replace('Nowak', 'Kowalski');
B. $a = str_replace('Nowak', 'Kowalski', $a);
C. $a = str_rep('Kowalski', 'Nowak', $a);
D. $a = str_replace('Kowalski', 'Nowak', $a);
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest poprawna, ponieważ wykorzystuje funkcję str_replace, która jest standardowym narzędziem w PHP do zamiany wszystkich wystąpień określonego ciągu znaków na inny w danym tekście. W tym przypadku zamieniamy słowo 'Kowalski' na 'Nowak' wewnątrz zmiennej $a. Funkcja str_replace działa w sposób, który jest zgodny z dobrymi praktykami programistycznymi, pozwalając na prostą i efektywną manipulację łańcuchami tekstowymi. Przykład zastosowania: jeśli $a = 'Jan Kowalski jest programistą. Kowalski ma doświadczenie.', to po wykonaniu powyższego polecenia zmienna $a stanie się 'Jan Nowak jest programistą. Nowak ma doświadczenie.'. Warto pamiętać, że str_replace jest wrażliwa na wielkość liter, co oznacza, że najlepiej stosować ją w kontekście, gdzie zapisy są jednolite. Dodatkowo, funkcja ta zwraca nowy łańcuch znaków, co oznacza, że oryginalna zmienna $a pozostaje niezmieniona, co jest zgodne z zasadami programowania funkcyjnego.

Pytanie 38

Przedstawiony kod języka PHP

$dane = array ('imie' => 'Anna', 'nazwisko' => 'Nowak', 'wiek' => 21);
A. jest błędny, indeksami tablicy mogą być tylko liczby całkowite.
B. definiuje tablicę z trzema wartościami.
C. jest błędny, nieznany operator =>
D. definiuje tablicę z sześcioma wartościami.
Dobra robota, wybrałeś właściwą odpowiedź! Ten kod PHP, który analizujesz, rzeczywiście ustawia tablicę asocjacyjną z trzema parami klucz-wartość. Tak naprawdę tablica asocjacyjna to coś w stylu tablicy, gdzie każdemu elementowi przypisujesz unikalny klucz zamiast numeru indeksu. No i ten operator '=>' to typowy element PHP, służy do przypisywania wartości kluczom w tablicach. W twoim przykładzie widzisz, że kluczami mogą być nie tylko liczby, ale też łańcuchy tekstowe. To naprawdę przydatne, szczególnie przy przechowywaniu informacji, które łatwo zidentyfikować – na przykład numery telefonów czy adresy e-mail. Pamiętaj, że w PHP tablica to jedna z podstawowych struktur danych. Może trzymać różne typy danych, takie jak liczby, teksty, obiekty czy inne tablice, a jej rozmiar może się zmieniać w trakcie działania programu.

Pytanie 39

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. array(2) { [0]=> int(59) [1]=> int(85) }
D. float(59.85)
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 40

W skrypcie PHP należy stworzyć cookie o nazwie "owoce", które przyjmie wartość "jabłko". Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP trzeba zastosować funkcję:

A. setcookie("jabłko", "owoce", time()+3600);
B. setcookie("owoce", "jabłko", time()+3600);
C. cookie("owoce", "jabłko", 3600);
D. cookie("jabłko", "owoce", 3600);
Funkcja setcookie() jest standardowym narzędziem w PHP, używanym do tworzenia cookies. W przypadku tej odpowiedzi, używamy jej w poprawny sposób, definiując nazwę cookies jako 'owoce', wartość jako 'jabłko' oraz czas wygaśnięcia. Wywołanie time()+3600 oznacza, że cookie będzie ważne przez jedną godzinę od momentu jego utworzenia. Ważne jest, aby pamiętać, że setcookie() musi być wywołane przed jakimkolwiek kodem HTML, który jest wysyłany do przeglądarki. W praktyce, cookies mogą być używane do przechowywania informacji o użytkownikach, takich jak preferencje lub dane sesji. Na przykład, w przypadku aplikacji e-commerce, cookies mogą pomóc w śledzeniu produktów dodanych do koszyka przez użytkownika, co jest istotne dla poprawy doświadczeń zakupowych. Standardy dotyczące cookies wskazują również na konieczność zachowania ostrożności w zakresie prywatności i bezpieczeństwa, dlatego warto stosować flagi zabezpieczeń, takich jak HttpOnly i Secure, w zależności od kontekstu użycia.