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: 25 kwietnia 2026 18:56
  • Data zakończenia: 25 kwietnia 2026 19:02

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

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

Wskaż polecenie, które działa identycznie jak instrukcja while w PHP.

$x = 0;
while($x < 5) {
    echo "$x,";
    $x++;
}

Instrukcja 1
for ($x=0; $x<5; $x++) {
    echo "$x,";
    $x++;
}

Instrukcja 2
for ($x=0; $x<5; $x+=2) {
    echo "$x,";
    $x++;
}

Instrukcja 3

for ($x=0; $x<5; $x++) {
    echo "$x,";
}

Instrukcja 4
for ($x=1; $x<=5; $x++) {
    echo "$x,";
}
A. Instrukcja 1
B. Instrukcja 3
C. Instrukcja 2
D. Instrukcja 4
Instrukcja 3 jest funkcjonalnie równoważna podanej instrukcji while w języku PHP. W obu przypadkach pętla zaczyna się z wartością zmiennej x równej 0 i kontynuuje dopóki x jest mniejsze od 5. W każdej iteracji zmienna x jest zwiększana o 1. Wyrażenie warunkowe w pętli for to x<5 co odpowiada warunkowi while $x<5. Część inicjalizacyjna for ustawia zmienną na 0 co jest zgodne z inicjalizacją przed pętlą while. Instrukcje zawarte w pętli wykonują te same operacje wyświetlania wartości x i inkrementacji. W praktyce stosowanie pętli for może być korzystne dla czytelności gdyż wszystkie elementy sterujące pętlą są zgrupowane w jednej linii co ułatwia zrozumienie jej działania. Jest to zgodne z dobrymi praktykami programistycznymi które promują klarowność kodu. Instrukcje for są często wykorzystywane w sytuacjach gdy liczba iteracji jest z góry znana co czyni je bardziej intuicyjnymi w takich przypadkach.

Pytanie 2

W PHP typ float oznacza

A. typ całkowity
B. typ łańcuchowy
C. typ zmiennoprzecinkowy
D. typ logiczny
W języku PHP typ 'float' jest używany do reprezentacji liczb zmiennoprzecinkowych, co oznacza, że może on przechowywać liczby z częścią dziesiętną. Jest to kluczowy element programowania, ponieważ pozwala na bardziej precyzyjne obliczenia, które są niezbędne w wielu zastosowaniach, takich jak obliczenia finansowe czy analizy naukowe. Dzięki użyciu typu float, programiści mogą używać skomplikowanych algorytmów, które wymagają operacji na liczbach niecałkowitych. W praktyce, kiedy potrzebujemy obliczyć ceny z podatkiem lub odsetkami, użycie float pozwala na dokładniejsze wyniki niż w przypadku typów całkowitych. Należy również pamiętać, że przy pracy z typem float warto stosować funkcje takie jak round(), aby uniknąć problemów z precyzją wyników, które mogą wynikać z ograniczeń reprezentacji liczb zmiennoprzecinkowych w pamięci komputera. Warto także zaznaczyć, że zgodnie z dokumentacją PHP, float jest zgodny z standardem IEEE 754, co zapewnia jego szeroką kompatybilność z innymi systemami oraz językami programowania.

Pytanie 3

W języku PHP znajduje się instrukcja pętli umieszczona w ramce. Ile razy zostanie wykonana ta pętla, o ile zmienna kontrolna nie jest zmieniana w jej wnętrzu, a także nie dodano instrukcji przerywającej pętlę, takiej jak break?

Ilustracja do pytania
A. 100 powtórzeń
B. 9 powtórzeń
C. 10 powtórzeń
D. 11 powtórzeń
Pętla for w języku PHP została skonstruowana z trzech części: inicjalizacji zmiennej sterującej $i=10 warunku zakończenia $i<=100 oraz modyfikatora $i+=10. Analizując te elementy widzimy że pętla zaczyna się od wartości 10 i przy każdym przejściu zwiększa $i o 10 aż do osiągnięcia wartości 100 włącznie. Oznacza to że pętla wykona się dla wartości 10 20 30 40 50 60 70 80 90 oraz 100 co daje łącznie 10 powtórzeń. Takie podejście jest efektywne i zgodne z dobrymi praktykami programistycznymi które zakładają wyraźne określenie warunków wejściowych i wyjściowych pętli. W praktyce stosowanie pętli for dla iteracji o znanym zakresie jest preferowane ze względu na swoją przejrzystość i czytelność. Warto też dodać że pętle for są mniej podatne na błędy wynikające z nieodpowiedniego modyfikowania zmiennej sterującej co jest częstym problemem w przypadku pętli while. Przy programowaniu w PHP ważne jest aby zawsze sprawdzać poprawność warunków zapętlających by uniknąć pułapek związanych z nieskończonymi pętlami.

Pytanie 4

Jakie oznaczenie w języku PHP wskazuje na komentarz wieloliniowy?

A. <!-- -->
B. #
C. //
D. /* */
Komentarze wieloliniowe w języku PHP definiuje zapis /* */. Umożliwia on umieszczanie dłuższych opisów lub wyjaśnień w kodzie, które są ignorowane przez interpreter PHP. Użycie tego typu komentarzy jest szczególnie przydatne w sytuacjach, kiedy chcemy opisać złożone fragmenty kodu lub zablokować dużą ilość kodu w czasie testowania. Przykładem może być zasłonięcie sekcji kodu, która nie jest aktualnie potrzebna: /* echo 'To jest test'; */. Warto pamiętać, że komentarze powinny być używane do poprawy czytelności kodu, co jest zgodne z dobrą praktyką programistyczną. Zaleca się również stosowanie komentarzy w sposób przemyślany, aby nie tworzyć nadmiernej ilości niepotrzebnych informacji, co mogłoby wprowadzać chaos w projekcie. W PHP można także łączyć różne typy komentarzy, co pozwala na elastyczne i czytelne dokumentowanie kodu.

Pytanie 5

Która z funkcji zdefiniowanych w języku PHP zwraca jako wynik połowę kwadratu wartości podanej jako argument?

A. function licz($a) {echo $a/2;}
B. function licz($a) {echo $a*$a/2;}
C. function licz($a) {return echo $a*$a/2;}
D. function licz($a) {return echo $a/2;}
Pierwsza z niepoprawnych odpowiedzi, która wykorzystuje 'echo', nie zwraca wartości, a jedynie ją wyświetla. Funkcje w PHP powinny zwracać wartości za pomocą 'return', aby umożliwić ich dalsze wykorzystanie. W przypadku drugiej odpowiedzi, również wykorzystanie 'echo' uniemożliwia zwrócenie wartości funkcji. Ostatecznie, operacja $a*$a/2 jest poprawna, ale brak 'return' sprawia, że nie możemy jej użyć w dalszej części kodu. Ostatnia z odpowiedzi zawiera składnię 'return echo', która jest niepoprawna w języku PHP, ponieważ 'return' i 'echo' nie mogą być używane razem w ten sposób. W PHP funkcja 'return' służy do zwracania wartości, a 'echo' do wyświetlania. Dlatego, nawet jeśli wyrażenie '$a*$a/2' jest poprawne, to sposób jego zwracania jest błędny. Te aspekty techniczne są kluczowe dla zrozumienia, jak funkcje powinny być prawidłowo implementowane w PHP, aby mogły być efektywne i zgodne z konwencjami języka.

Pytanie 6

Kod

$liczba2 = &$liczba1;
wskazuje, że zmienna $liczba2 jest
A. wskaźnikiem do $liczba1
B. iloczynem logicznym ze zmienną $liczba1
C. negacją logiczną zmiennej $liczba1
D. referencją do $liczba1
Wskaźnik to pojęcie obecne w językach takich jak C/C++, ale w PHP wskaźniki nie są bezpośrednio używane. W PHP mówimy o referencjach, które działają na wyższym poziomie abstrakcji, pozwalając na współdzielenie wartości między zmiennymi bez użycia wskaźników. Twierdzenie, że zmienna \$liczba2 jest wskaźnikiem do \$liczba1, jest błędne, ponieważ PHP nie obsługuje wskaźników w klasycznym rozumieniu. Negacja logiczna oznaczałaby wykorzystanie operatora negacji (!) i zmienienie wartości logicznej zmiennej. W kontekście kodu PHP negacją byłoby użycie wyrażenia typu \"\$liczba2 = !\$liczba1\", co oznacza konwersję wartości na jej przeciwność logiczną. Wreszcie, iloczyn logiczny wymaga użycia operatora koniunkcji (&&) dla dwóch wartości logicznych i nie odnosi się do referencji. Iloczyn logiczny zwraca prawdę tylko wtedy, gdy oba operand są prawdziwe, co w opisie kodu nie ma zastosowania. Każda z tych błędnych interpretacji wynika z mylnego zrozumienia podstawowych mechanizmów języka PHP, które koncentrują się na referencjach jako sposobie efektywnego zarządzania pamięcią i współdzielenia danych.

Pytanie 7

Która z funkcji zdefiniowanych w języku PHP zwraca jako wynik połowę kwadratu wartości podanej jako argument?

A. function licz($a) { return $a/2; }
B. function licz($a) { return $a*$a/2; }
C. function licz($a) { echo $a*$a/2; }
D. function licz($a) { echo $a/2; }
Dobra robota, jeśli chodzi o tę funkcję! Właściwa odpowiedź to taka, która zwraca połowę kwadratu podanej wartości. W przykładzie 'function licz($a) { return $a*$a/2; }' widać, że użycie 'return' jest bardzo ważne, bo to dzięki niemu wynik trafia tam, gdzie funkcję wywołujemy. Najpierw 'a' jest podnoszone do kwadratu, czyli 'a * a', a potem dzielimy to przez 2. Jak dla 'a' podstawimy 4, to wyjdzie 8, bo połowa z 16 (kwadrat z 4) to właśnie 8. Bardzo dobrze, że zwracasz uwagę na takie szczegóły, bo to naprawdę istotne w programowaniu. Można tę funkcję stosować w różnych sytuacjach, np. w aplikacjach z interfejsem graficznym czy przy analizie jakichś danych, no wiesz, tam, gdzie matematyka wchodzi w grę.

Pytanie 8

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

A. phpcredits();
B. echo phpversion();
C. phpinfo();
D. print_r(ini_get_all());
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 9

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

A. echo()
B. parse_str()
C. include()
D. mysqli_connect()
Funkcja <code>mysqli_connect()</code> w PHP jest używana do nawiązywania połączenia z bazą danych MySQL. Jej głównym celem jest umożliwienie komunikacji między skryptem PHP a serwerem baz danych, co jest kluczowe w aplikacjach webowych, które potrzebują przechowywać i pobierać dane. Ta funkcja nie ma jednak nic wspólnego z ładowaniem plików z serwera, co jest zadaniem funkcji <code>include()</code>. Funkcja <code>echo()</code> służy do wyświetlania tekstu lub wartości zmiennych na stronie internetowej. Jest to podstawowe narzędzie do generowania dynamicznej zawartości w PHP, ale nie ma możliwości ładowania plików. Jest to bardziej odpowiednik wyjścia niż narzędzie do manipulacji plikami. Funkcja <code>parse_str()</code> konwertuje ciąg zapytania URL na zmienne PHP. Jest przydatna, gdy chcemy przekształcić dane w formacie URL do użytku w skrypcie PHP, jednak jej zastosowanie jest zupełnie inne niż ładowanie plików. Często używana w kontekście przetwarzania danych GET, ale nie ma związku z ładowaniem struktury zewnętrznych plików. Wybór tych funkcji jako potencjalnych odpowiedzi może wynikać z nieporozumienia odnośnie ich zastosowań, ale każda z nich pełni inną, specyficzną rolę w PHP.

Pytanie 10

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. nazwa bazy danych
B. nazwa użytkownika
C. hasło dla użytkownika
D. adres serwera bazy danych
Wybór odpowiedzi dotyczącej 'nazwa bazy danych', 'hasło użytkownika' i 'lokalizacja serwera bazy danych' nie jest poprawny, bo żaden z tych elementów nie odnosi się do drugiego argumentu w konstruktorze mysqli. Zrozumienie połączeń z bazą danych jest kluczowe przy programowaniu w PHP. 'Nazwa bazy danych' to czwarty argument, więc dotyczy tego, do której bazy chcemy się podłączyć. 'Hasło użytkownika' to trzeci argument, który jest potrzebny, żeby się autoryzować. A 'lokalizacja serwera bazy danych' to pierwszy argument, który mówi, gdzie znajduje się serwer, najczęściej będzie to 'localhost', na którym działa nasza aplikacja. Błędne wnioski mogą się brać z niepełnego zrozumienia struktury połączeń w PHP.

Pytanie 11

Jaki wynik przyjmie zmienna a po zakończeniu pętli w podanym fragmencie kodu PHP?

$i = 10; $a = 0;
while ($i)
{
    $a = $a + 2;
    $i--;
}
A. 20
B. 0
C. 10
D. 2
W podanym fragmencie kodu PHP zmienna a przyjmuje wartość 20 po zakończeniu pętli. Dzieje się tak, ponieważ pętla while wykonuje się, dopóki zmienna i jest różna od zera. Na początku i jest równe 10, a podczas każdej iteracji pętli zmienna a jest zwiększana o 2, a zmienna i jest dekrementowana o 1. W efekcie pętla wykonuje się dokładnie 10 razy, a w każdej iteracji wartość zmiennej a zwiększa się o 2. W rezultacie po 10 iteracjach zmienna a osiąga wartość 20. Takie podejście do pętli while jest często stosowane w programowaniu, gdy chcemy wykonać określoną liczbę iteracji, dopóki warunek logiczny jest spełniony. Jest to przykład dobrej praktyki, gdy kod jest czytelny i łatwy do zrozumienia. W praktyce programowania PHP pętle tego typu są używane do różnych operacji, takich jak przetwarzanie danych, iterowanie po elementach tablic, czy wykonywanie złożonych obliczeń, co ilustruje zrozumiałe i efektywne zastosowanie tej konstrukcji w PHP.

Pytanie 12

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", należy zastosować funkcję PHP

A. strtoupper("ala ma psa")
B. strtolower("ala ma psa")
C. strstr("ala ma psa")
D. ucfirst("ala ma psa")
Odpowiedzi, które zaznaczyłeś, są niestety mylne. Funkcja ucfirst zmienia tylko pierwszą literę na dużą i nie osiągnie zamierzonego celu, bo zostawi resztę tekstu tak, jak jest. Więc 'ala ma psa' zamieni się tylko w 'Ala ma psa', co nie jest tym, co chciałeś uzyskać. Z kolei strtolower przekształca wszystko na małe litery, więc po jej użyciu wynik byłby wciąż 'ala ma psa'. A funkcja strstr służy do wyszukiwania fragmentów tekstu, nie do zmiany wielkości liter. Trochę szkoda, bo wszystkie te funkcje mają swoje zastosowania, ale ważne, żeby znać ich różnice, żeby nie popełniać takich błędów. Warto zerknąć do dokumentacji PHP i korzystać z różnych materiałów, żeby lepiej ogarnąć te rzeczy.

Pytanie 13

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w przedziale jednostronnie domkniętym <-5, 10)?

A. $zmienna1 <= -5 || $zmienna1 < 10
B. $zmienna1 >= -5 && $zmienna1 < 10
C. $zmienna1 <= -5 && $zmienna1 < 10
D. $zmienna1 >= -5 || $zmienna1 < 10
Błędne odpowiedzi opierają się na niewłaściwym zrozumieniu pojęcia przedziału oraz operatorów logicznych w języku PHP. W przypadku wyrażenia $zmienna1 >= -5 || $zmienna1 < 10, użycie operatora || (lub) oznacza, że wystarczy, aby jedna z warunków była spełniona, co prowadzi do sytuacji, w której każde zmienne, które są mniejsze od 10, również zostaną uznane za poprawne, nawet jeśli są mniejsze niż -5. Takie podejście nie odzwierciedla założonego przedziału. Kolejna niepoprawna koncepcja to wyrażenie $zmienna1 <= -5 || $zmienna1 < 10, które również wprowadza w błąd, ponieważ pozwala na wartości mniejsze lub równe -5, a także na wartości mniejsze od 10, co całkowicie wykracza poza założony przedział. Wyrażenie $zmienna1 <= -5 && $zmienna1 < 10 również jest błędne, ponieważ sugeruje, że zmienna1 musi być jednocześnie mniejsza lub równa -5 oraz mniejsza od 10, co jest logicznie sprzeczne z definicją przedziału. W praktyce, takie błędne podejścia mogą prowadzić do nieprawidłowych wyników i trudności w diagnostyce błędów, dlatego kluczowe jest zrozumienie i poprawne stosowanie operatorów oraz warunków w kodzie. Zastosowanie błędnych wyrażeń może prowadzić do wprowadzenia poważnych błędów w logice programu, co jest niepożądane w kontekście dobrej praktyki programistycznej.

Pytanie 14

Jakim zapisem w języku PHP można określić komentarz, który rozciąga się na wiele linii?

A. #
B. //
C. <!-- -->
D. /*  */
W języku PHP komentarz wieloliniowy definiuje się za pomocą zapisu /* */. Taki komentarz może obejmować wiele linii tekstu, co czyni go niezwykle przydatnym do opisywania fragmentów kodu, które są zbyt obszerne, by umieścić je w pojedynczej linii. Używanie komentarzy wieloliniowych pozwala programistom na dodawanie szczegółowych wyjaśnień dotyczących funkcji, algorytmów czy też sposobu działania poszczególnych sekcji kodu. Dobrą praktyką jest stosowanie takich komentarzy, aby ułatwić innym programistom zrozumienie kodu lub przypomnienie sobie samego siebie, co dany fragment robi. Przykładowo: /* Funkcja oblicza sumę dwóch liczb Parametr 1: pierwsza liczba Parametr 2: druga liczba Zwraca: suma obu liczb */ Ponadto, stosowanie komentarzy jest zgodne z zasadami programowania zorientowanego na zrozumiałość, które są kluczowe w projektach zespołowych oraz w długofalowym utrzymaniu kodu. Poprawne stosowanie komentarzy pomaga w dokumentowaniu kodu oraz w jego przyszłym rozwoju.

Pytanie 15

W języku PHP, aby nawiązać połączenie z bazą danych MySQL za pomocą biblioteki mysqli, wykorzystując podany kod, w miejscu parametru 'c' powinno się wpisać

$a = new mysqli('b', 'c', 'd', 'e')
A. nazwę użytkownika
B. lokalizację serwera bazy danych
C. nazwę bazy danych
D. hasło użytkownika
Aby poprawnie korzystać z biblioteki mysqli w PHP konieczne jest zrozumienie kolejności i znaczenia parametrów używanych do nawiązywania połączenia z bazą danych MySQL. Pierwszym parametrem w funkcji mysqli_connect lub konstruktorze klasy mysqli jest lokalizacja serwera bazy danych. Zazwyczaj wartością domyślną jest 'localhost' co oznacza że serwer bazy danych działa na tej samej maszynie co serwer PHP. Błędne przypisywanie innej wartości w tym miejscu może prowadzić do problemów z połączeniem jeśli serwer bazy danych jest w rzeczywistości lokalny. Drugim parametrem jest nazwa użytkownika która jest niezbędna do autoryzacji dostępu do bazy danych. Często stosowanym błędem jest użycie niewłaściwego użytkownika co może skutkować odmową dostępu do bazy. Trzecim jest hasło które powinno być silne i dobrze zabezpieczone aby zapobiec nieautoryzowanemu dostępowi. Błędne przypisanie tego parametru może skutkować podatnością na ataki. Czwartym parametrem jest nazwa bazy danych do której zamierzamy się połączyć. Błędne podanie tej wartości może powodować że operacje bazy danych będą wykonywane na niewłaściwej bazie co może mieć katastrofalne skutki dla danych. Zrozumienie i poprawne przypisanie tych wartości jest kluczowe w kontekście bezpieczeństwa i stabilności aplikacji webowych i często jest elementem dobrych praktyk w programowaniu PHP. Również zrozumienie tego w kontekście skalowalności i zarządzania środowiskami produkcyjnymi jest istotne aby uniknąć problemów związanych z konfiguracją na różnych etapach rozwoju aplikacji. Właściwe zarządzanie tymi parametrami często wiąże się z używaniem plików konfiguracyjnych co pozwala na łatwiejsze zarządzanie i większą elastyczność w kontekście różnych środowisk programistycznych i produkcyjnych. Poprawne zrozumienie tego mechanizmu jest kluczowe dla tworzenia bezpiecznych i stabilnych aplikacji webowych.

Pytanie 16

W przedstawionym kodzie PHP, co powinno się wyświetlić zamiast znaków zapytania?

$x = mysql_query('SELECT * FROM mieszkancy');
if(!$x)
echo "???????????????????????";
A. Zapytanie zostało zrealizowane pomyślnie
B. Nieprawidłowe hasło do bazy danych
C. Błąd w trakcie przetwarzania zapytania
D. Niepoprawna nazwa bazy danych
Odpowiedź 2 czyli Błąd przetwarzania zapytania jest poprawna ponieważ w kodzie PHP używana jest funkcja mysql_query do wykonania zapytania SQL Funkcja ta zwraca false w przypadku niepowodzenia co oznacza że blok if(!x) zostanie wykonany tylko wtedy gdy wystąpi błąd w przetwarzaniu zapytania Komunikat Błąd przetwarzania zapytania jest więc właściwy ponieważ odzwierciedla sytuację w której zapytanie nie mogło zostać wykonane poprawnie co może być wynikiem wielu czynników takich jak błędy składniowe w zapytaniu brak połączenia z serwerem bazy danych lub nieodpowiednie uprawnienia użytkownika Praktyczne podejście do obsługi błędów w PHP często obejmuje logowanie szczegółowych komunikatów błędów lub przekazywanie ich użytkownikowi w sposób przyjazny dla użytkownika co jest zgodne z najlepszymi praktykami w zakresie programowania Dodatkowo warto wspomnieć że funkcja mysql_query jest przestarzała i nie jest zalecana do użycia w nowych projektach Zaleca się używanie bardziej nowoczesnych funkcji takich jak mysqli_query lub PDO co poprawia bezpieczeństwo i wydajność aplikacji

Pytanie 17

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

Pytanie 18

W języku PHP instrukcja foreach jest rodzajem

A. instrukcji warunkowej, niezależnie od typu zmiennej
B. pętli, niezależnie od rodzaju zmiennej
C. instrukcji wyboru, dla elementów tablicy
D. pętli, przeznaczonej wyłącznie dla elementów tablicy
Trochę mylne jest stwierdzenie, że <i>foreach</i> to pętla, która może działać na każdej zmiennej. W rzeczywistości <i>foreach</i> jest ściśle związana z tablicami. Jak spróbujesz użyć jej na zmiennej, która nie jest tablicą, to dostaniesz błąd. I nie ma co mówić, że <i>foreach</i> to instrukcja warunkowa, bo to też nieprawda. Instrukcje warunkowe, jak <i>if</i>, podejmują decyzje, a <i>foreach</i> jest do tego, żeby iterować. I to, co ktoś napisał o pętli wyboru, też wprowadza w błąd. Pętle jak <i>for</i> czy <i>while</i> powtarzają kod na podstawie warunków, a <i>foreach</i> to po prostu iteracja po elementach tablicy. Tak że tu ważne jest, żeby nie mylić pętli iteracyjnych z warunkowymi oraz rozumieć, gdzie można używać <i>foreach</i>, bo jak się tego nie zrozumie, to mogą być problemy w programowaniu w PHP i można nie wykorzystać dostępnych narzędzi jak trzeba.

Pytanie 19

$x = mysql_query('SELECT * FROM mieszkanci'); if (!$x) echo "??????????????????????????????"; W podanym kodzie PHP, w miejscu znaków zapytania powinien wyświetlić się komunikat:

A. Złe hasło do bazy danych
B. Błąd w trakcie przetwarzania zapytania
C. Nieprawidłowa nazwa bazy danych
D. Zapytania zakończono sukcesem
W przedstawionym kodzie PHP mamy do czynienia z próbą wykonania zapytania SQL do bazy danych przy pomocy funkcji mysql_query. Ta funkcja zwraca wartość false, jeśli wystąpił błąd w trakcie przetwarzania zapytania. W kontekście tego kodu, komunikat 'Błąd przetwarzania zapytania.' jest odpowiedni, ponieważ wskazuje, że zapytanie nie zostało poprawnie wykonane. Istotne jest, aby programista zrozumiał, że błędy mogą wynikać z różnych przyczyn, takich jak błędna składnia SQL, problemy z połączeniem do bazy danych lub inne czynniki techniczne. Ważną praktyką jest dodawanie mechanizmów obsługi błędów, które mogą dać więcej informacji na temat problemu, np. użycie mysql_error() do uzyskania szczegółowych informacji o błędzie. Standardy dotyczące programowania w PHP oraz najlepsze praktyki wskazują na konieczność stosowania try-catch dla lepszej kontroli błędów oraz logowania, co może pomóc w diagnozowaniu problemów na etapie produkcyjnym. Warto zaznaczyć, że mysql_query jest przestarzałą funkcją, a obecnie zaleca się użycie mysqli lub PDO do komunikacji z bazą danych, co poprawia bezpieczeństwo i wydajność aplikacji.

Pytanie 20

Który z opisów komentarza odzwierciedla działanie funkcji zdefiniowanej w języku PHP ```function fun1($a, $b) { if($a > $b) return $a; elseif($b > $a) return $b; else return -1; }```?

A. /* Funkcja zwraca niższą wartość spośród dwóch podanych, w przypadku równości zwraca wartość $a */
B. /* Funkcja zwraca niższą wartość spośród dwóch podanych, w przypadku równości zwraca -1 */
C. /* Funkcja zwraca wyższą wartość spośród dwóch podanych, w przypadku równości zwraca wartość $a */
D. /* Funkcja zwraca wyższą wartość spośród dwóch podanych, w przypadku równości zwraca -1 */
Funkcja `fun1` w języku PHP ma na celu porównanie dwóch wartości przekazanych jako argumenty `$a` i `$b`. Zastosowana logika w funkcji jest jasna: jeśli `$a` jest większe od `$b`, funkcja zwraca wartość `$a`; jeśli `$b` jest większe, zwraca wartość `$b`. W przypadku, gdy obie wartości są równe, funkcja zwraca -1, co jasno wskazuje na brak różnicy między tymi wartościami. Takie podejście jest zgodne z dobrymi praktykami programistycznymi, ponieważ funkcje powinny być jednoznaczne i przewidywalne w swoim działaniu. Wykorzystanie zwracania wartości -1 jako wskaźnika równości jest ciekawym rozwiązaniem, które może być przydatne w dalszej logice aplikacji, gdzie różne kody zwrotne mogą reprezentować różne stany. W praktycznych zastosowaniach taka funkcja mogłaby być używana w algorytmach sortujących lub w analizach danych, gdzie potrzeba porównania wartości jest powszechna. Dobrą praktyką jest także dokumentowanie funkcji, aby inni programiści mogli łatwo zrozumieć jej działanie i zastosowanie.

Pytanie 21

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

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. ogram
B. og
C. gramo
D. gr
Odpowiedź 'gramo' jest poprawna, ponieważ funkcja substr() w PHP służy do wyodrębnienia podciągu z łańcucha znaków. W przedstawionym kodzie, oryginalna wartość zmiennej $napis to 'Programowanie w PHP'. Funkcja substr() przyjmuje trzy argumenty: pierwszy to łańcuch źródłowy, drugi to indeks początkowy (rozpoczynając od 0), a trzeci to długość podciągu, który ma zostać wyodrębniony. W naszym przykładzie, funkcja substr($napis, 3, 5) zaczyna od indeksu 3, co odpowiada literze 'g' w słowie 'Programowanie', a następnie pobiera kolejnych 5 znaków. Ostatecznie wyodrębniony podciąg to 'gramo', obejmujący znaki g, r, a, m, o. Przykład zastosowania: możemy użyć tej funkcji do wyodrębnienia konkretnej części tekstu, na przykład w przypadku przetwarzania danych lub generowania dynamicznej zawartości na stronach internetowych.

Pytanie 22

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

A. ASP.NET
B. Symfony
C. Spring
D. Angular
Symfony jest jednym z najpopularniejszych frameworków PHP, który został zaprojektowany w celu ułatwienia tworzenia aplikacji webowych. Oferuje zestaw narzędzi i komponentów, które wspierają rozwój poprzez ułatwienie organizacji kodu, co jest zgodne z zasadami programowania obiektowego. W praktyce, Symfony pozwala na szybkie prototypowanie aplikacji oraz wspiera długoterminowy rozwój dzięki modularności i łatwości w utrzymaniu. Framework ten stosuje wzorzec architektoniczny MVC (Model-View-Controller), co pozwala na oddzielanie logiki aplikacji od warstwy prezentacji, co jest zgodne z najlepszymi praktykami w branży. Symfony posiada bogaty ekosystem, w tym zestaw komponentów, które mogą być używane niezależnie od całego frameworka. Przykłady zastosowania Symfony obejmują tworzenie złożonych systemów zarządzania treścią (CMS), e-commerce, oraz aplikacji opartej na REST API. Jego wsparcie dla testów automatycznych oraz rozbudowanej dokumentacji czyni go idealnym wyborem dla projektów wymagających wysokiej jakości kodu oraz efektywności w rozwoju.

Pytanie 23

W PHP, aby połączyć się z bazą danych MySQL przy użyciu biblioteki mysqli, w zapisie zamieszczonym poniżej, w miejscu litery 'c' powinno się wpisać

Ilustracja do pytania
A. nazwę użytkownika
B. nazwę bazy danych
C. lokalizację serwera bazy danych
D. hasło użytkownika
Rozważając, co powinno znajdować się na miejscu oznaczonym literą 'c', należy zrozumieć, jak działa funkcja mysqli w PHP. Pierwszym argumentem jest lokalizacja serwera bazy danych, często jest to 'localhost' dla lokalnych połączeń, co może prowadzić do błędnego założenia, że to właśnie ten parametr znajduje się pod literą 'c'. Drugi parametr powinien być nazwą użytkownika bazy danych, co w kontekście bezpieczeństwa jest elementem, na który zawsze trzeba zwracać uwagę. Hasło użytkownika znajduje się na trzeciej pozycji i jest kluczowe dla zapewnienia, że tylko uprawnione osoby mogą uzyskać dostęp do bazy. Czwarty parametr to nazwa bazy danych, która jest niezbędna do określenia, z którą bazą chcemy pracować w ramach danego połączenia. Często błędnie przyjmuje się, że nazwa bazy powinna być na pierwszym miejscu, co wynika z zamieszania co do struktury danych wejściowych. Warto dodać, że lokalizacja serwera, choć czasem zaniedbywana, jest kluczowa w środowiskach rozproszonych, gdzie połączenia mogą być nawiązywane z różnych serwerów lub maszyn wirtualnych. Każdy z tych elementów jest istotny i musi być poprawnie zidentyfikowany, aby połączenie z bazą danych było skuteczne i bezpieczne. Praktyczne umiejętności w tej dziedzinie są kluczowe, zwłaszcza przy projektowaniu i wdrażaniu aplikacji działających w profesjonalnym środowisku produkcyjnym.

Pytanie 24

Do czego służy funkcja PHP o nazwie mysql_num_rows?

A. oddawać następny rekord z wyników zapytania
B. przyporządkować numery rekordom w bazie danych
C. zwracać rekord, którego numer został przekazany jako parametr funkcji
D. podawać liczbę wierszy, które są w wynikach zapytania
Wszystkie pozostałe odpowiedzi są niepoprawne z kilku kluczowych powodów. Pierwsza z niepoprawnych odpowiedzi sugeruje, że funkcja mysql_num_rows ma na celu ponumerowanie rekordów w bazie danych. Takie podejście jest mylące, ponieważ mysql_num_rows nie modyfikuje ani nie przechowuje żadnych danych w bazie, a jedynie zwraca informację o liczbie wierszy w zestawie wyników, co w żaden sposób nie wiąże się z ich numerowaniem. Kolejna błędna odpowiedź wskazuje, że funkcja miałaby zwracać kolejny rekord z wynikami zapytania. W rzeczywistości, mysql_num_rows nie zwraca danych samych w sobie, lecz jedynie informację o ich liczbie, co czyni tę odpowiedź zupełnie nietrafioną. Ostatnia niepoprawna odpowiedź sugeruje, że funkcja zwraca rekord na podstawie numeru podanego w jej parametrze. Znowu, taka interpretacja jest nieprawidłowa, ponieważ mysql_num_rows nie przyjmuje parametrów odnoszących się do konkretnych rekordów, a jedynie do zmiennej wynikowej, która zawiera efekty zapytania SQL. W związku z tym, każde z tych stwierdzeń nieodzwierciedla rzeczywistej funkcji mysql_num_rows i jej zastosowania w kontekście zarządzania i przetwarzania danych w PHP.

Pytanie 25

Fragment kodu w języku PHP przedstawia się następująco (patrz ramka): W wyniku wykonania pętli zostaną wyświetlone liczby

Ilustracja do pytania
A. 0, 4, 8, 12, 16, 20
B. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
C. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
D. 0, 4, 8, 12, 16
W przypadku Twojej odpowiedzi widać, że pętla for może być czasem myląca. Jeśli dobrze nie rozumiemy jej działania, możemy dojść do błędnych wniosków co do tego, które liczby się pojawią. W PHP składnia pętli pozwala ustalić początek, warunki kontynuacji i zmiany wartości. Warto pamiętać, że warunek $i <= 20 oznacza, że pętla kończy działanie, kiedy $i przekroczy 20, ale dopóki $i jest równe 20 lub mniej, to pętla działa. Więc odpowiedzi, które ignorują 20, są błędne. Dodatkowo, jeśli przyrastamy $i o 4, to pomijamy liczby, które nie są wielokrotnościami 4. Często myślimy, że pętla wypisze wszystkie liczby od 0 do 19, a to nieprawda, bo nie zawsze inkrementujemy o 1, jak w wielu prostszych przypadkach. Żeby uniknąć takich błędów, warto dokładnie przyjrzeć się składni pętli for i zrozumieć, jak działa każdy jej element. To naprawdę pomaga w pisaniu poprawnego kodu.

Pytanie 26

Na temat zmiennej predefiniowanej $_POST w języku PHP możemy stwierdzić, że

A. jest repliką tablicy $_COOKIE
B. jest rozwiniętą wersją tablicy $_SESSION
C. zawiera informacje bezpośrednio przesłane do skryptu z ciasteczka
D. zawiera dane przesłane do skryptu z formularza
Predefiniowana zmienna $_POST w PHP pełni zupełnie inną rolę niż sugerują nieprawidłowe odpowiedzi. Nie jest ona związana z ciasteczkami ani nie zawiera ich kopii, co jest błędnym założeniem. Ciasteczka są przechowywane po stronie klienta i mają na celu zapamiętywanie informacji między sesjami użytkownika, co różni się od tymczasowego przesyłania danych formularza. Dodatkowo, zmienna $_POST nie ma nic wspólnego z tablicą $_COOKIE. $_COOKIE jest tablicą asocjacyjną, która przechowuje dane, przesyłane przez przeglądarkę w ciasteczkach, a jej rola jest zupełnie inna niż $_POST. Kolejne nieporozumienie dotyczy porównania $_POST z tablicą $_SESSION. $_SESSION jest używana do przechowywania danych sesyjnych po stronie serwera, podczas gdy $_POST służy do przesyłania danych z formularzy w momencie ich wysłania. Tego rodzaju błędne podejście może prowadzić do nieporozumień w projektowaniu aplikacji webowych, ponieważ zrozumienie mechanizmu działania tych zmiennych jest kluczowe dla prawidłowego przetwarzania danych oraz zapewnienia bezpieczeństwa aplikacji. W dobrych praktykach programistycznych ważne jest, aby zawsze oddzielać różne źródła danych i zrozumieć ich specyfikę, co zapobiega wprowadzaniu błędnych koncepcji w projektach.

Pytanie 27

Jaką funkcję w języku PHP można wykorzystać do weryfikacji typu zmiennej?

A. var_dump()
B. switch()
C. strrev()
D. foreach()
W kontekście PHP istnieje wiele funkcji i struktur, które mogą wprowadzać w błąd, gdy chodzi o sprawdzanie lub manipulację danymi. Funkcja strrev() służy do odwracania łańcucha tekstowego. Nie ma związku z typami zmiennych, ponieważ jej jedynym celem jest przetwarzanie tekstu. W przypadku switch() jest to konstrukcja kontrolująca przepływ, która jest używana do podejmowania decyzji w oparciu o wartość zmiennej, ale nie dostarcza informacji na temat jej typu. To najczęściej prowadzi do nieporozumień, gdy programiści próbują używać switch() do analizy typów danych, co jest niezgodne z zamierzonym przeznaczeniem tej konstrukcji. foreach() z kolei jest używane do iterowania po elementach tablicy lub obiektów, ale również nie dostarcza informacji na temat typów zmiennych. Powszechnym błędem myślowym jest mylenie funkcji i konstrukcji odpowiednich do różnych zadań. Programiści często mylą się, zakładając, że każda funkcja, która operuje na zmiennych, może dostarczyć informacji o ich typie, co jest nieprawidłowe. Kluczowe jest zrozumienie celu każdej z funkcji oraz stosowanie ich zgodnie z ich przeznaczeniem, aby uniknąć nieefektywnego kodu i trudności w debugowaniu aplikacji.

Pytanie 28

Język PHP zapewnia wsparcie dla

A. obiektów przeglądarki
B. klawiszy klawiatury
C. zdarzeń związanych z myszą
D. sesji i ciastek
PHP, jako język skryptowy po stronie serwera, oferuje wsparcie dla zarządzania sesjami oraz ciasteczkami, co jest kluczowe w kontekście tworzenia aplikacji internetowych. Sesje w PHP umożliwiają przechowywanie danych użytkownika pomiędzy różnymi żądaniami HTTP, co jest istotne w przypadku potrzeb utrzymania stanu aplikacji, np. podczas logowania. Dzięki funkcjom takim jak session_start() można łatwo rozpocząć nową sesję lub wznowić istniejącą. Ciasteczka, z kolei, pozwalają na przechowywanie danych po stronie klienta, co umożliwia personalizację doświadczeń użytkowników na stronie. Przykładem może być zapisywanie preferencji użytkownika, takich jak język interfejsu. Dobre praktyki w zakresie obsługi sesji i ciasteczek obejmują stosowanie bezpiecznych identyfikatorów sesji, ograniczanie czasu życia ciasteczek, a także ich szyfrowanie, co chroni przed atakami typu session hijacking. W ten sposób PHP gwarantuje, że aplikacje są nie tylko funkcjonalne, ale także bezpieczne.

Pytanie 29

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)/2; }
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 2/$a + 2/$b; }
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 30

W bibliotece mysqli w PHP, aby uzyskać najbardziej aktualny komunikat o błędzie, można użyć funkcji

A. mysqli_use_result()
B. mysqli_error()
C. mysqli_error_list()
D. mysqli_errno()
W kontekście użycia funkcji do uzyskania komunikatów o błędach w bibliotece mysqli, niektóre z odpowiedzi mogą prowadzić do nieporozumień. Na przykład, mysqli_use_result() jest funkcją, która służy do pobierania zestawu wyników z zapytania SELECT w trybie pamięci. Jej głównym zadaniem jest przetwarzanie wyników, a nie błędów, co czyni ją nieodpowiednią w tym kontekście. Użycie tej funkcji nie zapewnia informacji o błędach, czego można się spodziewać w przypadku zapytań, które mogą zakończyć się niepowodzeniem. Z kolei mysqli_errno() zwraca numer błędu związanego z ostatnią operacją, co może być przydatne, ale samo w sobie nie dostarcza opisu błędu, a tym samym nie spełnia wymagań dotyczących uzyskania ostatniego komunikatu o błędzie w formie tekstowej. Mimo że może być użyteczne w niektórych kontekstach, np. w logice warunkowej, nie jest w stanie dostarczyć pełnego opisu, którego można oczekiwać. Funkcja mysqli_error_list() zwraca tablicę wszystkich błędów związanych z ostatnią operacją, co również jest przydatne w określonych sytuacjach, jednak wciąż nie spełnia wymagań dotyczących prostego i bezpośredniego uzyskania ostatniego komunikatu o błędzie. Ostatecznie, przy wyborze metody obsługi błędów, kluczowe jest zrozumienie, że funkcje te mają różne zastosowania i nie każda z nich będzie odpowiednia w kontekście uzyskania pełnego opisu błędu. Podsumowując, wybór odpowiednich funkcji do obsługi błędów jest kluczowy dla efektywnego debugowania i poprawnego działania aplikacji opartych na PHP.

Pytanie 31

W języku PHP predefiniowana zmienna $_SESSION przechowuje

A. zmienne zarejestrowane w aktualnej sesji
B. zmienne przesyłane do skryptu przez formularz
C. zmienne przesyłane do skryptu przy pomocy ciastek (cookie)
D. listę zarejestrowanych sesji na serwerze WWW
Zmienna predefiniowana $_SESSION w języku PHP jest używana do przechowywania zmiennych, które są dostępne w trakcie trwania sesji użytkownika. Sesja pozwala na utrzymanie stanu między różnymi żądaniami HTTP, co jest istotne w aplikacjach webowych, gdzie HTTP jest protokołem bezstanowym. Dzięki $_SESSION, programiści mogą przechowywać dane użytkownika, takie jak identyfikatory, koszyki zakupowe czy inne ustawienia, bez konieczności przesyłania ich za każdym razem przez formularze lub ciasteczka. Przykładem może być sytuacja, w której użytkownik loguje się do serwisu – po zalogowaniu, jego identyfikator sesji jest przechowywany w $_SESSION, co pozwala na identyfikację użytkownika w kolejnych żądaniach. Ważne jest, aby pamiętać o odpowiednim zarządzaniu sesjami, np. poprzez regularne ich odnawianie, a także zabezpieczanie danych przechowywanych w $_SESSION, aby uniknąć ataków takich jak hijacking sesji. Praktyka ta jest zgodna z najlepszymi standardami bezpieczeństwa w programowaniu aplikacji webowych.

Pytanie 32

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

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

Pytanie 33

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

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

$x = 0; while($x < 5) { echo "$x,"; $x++; } Wskaż instrukcję, która jest funkcjonalnie równoważna dla podanej pętli while w języku PHP.

Ilustracja do pytania
A. Instrukcja 4
B. Instrukcja 1
C. Instrukcja 2
D. Instrukcja 3
W programowaniu często spotyka się różne sposoby implementacji pętli, jednak nie wszystkie z nich są równie efektywne czy poprawne w kontekście stawianych wymagań. W przypadku zaproponowanych instrukcji for, które miałyby być równoważne funkcjonalnie do podanej pętli while, kluczowym aspektem jest zachowanie identycznych warunków początkowych, warunku końcowego oraz sposobu inkrementacji zmiennej sterującej. Podczas gdy instrukcja 3 dokładnie odwzorowuje działanie pętli while pod względem inicjalizacji wartości $x, warunku kontynuacji ($x < 5) oraz kroku inkrementacyjnego ($x++), inne opcje różnią się w tych aspektach. Instrukcja 1 zawiera podwójną inkrementację zmiennej w każdym kroku pętli, co skutkuje zbyt szybkim osiągnięciem warunku końcowego. Instrukcja 2 zmienia krok inkrementacji na $x+=2, co prowadzi do pominięcia wartości i skrócenia pętli. Instrukcja 4 modyfikuje warunek początkowy, startując z $x równym 1, zamiast 0, co również wpływa na zakres wyświetlanych wartości. Te modyfikacje mogą wprowadzać w błąd i generować nieprzewidywalne wyniki, co jest niepożądane w kontekście pisania stabilnego i przewidywalnego kodu. Zrozumienie różnic w tych implementacjach jest kluczowe dla skutecznego programowania i unikania typowych błędów, które mogą prowadzić do niezamierzonych konsekwencji w działaniu aplikacji. Dlatego ważne jest, aby każda z pętli była precyzyjnie dostosowana do zamierzonej funkcjonalności i zgodna z założonymi celami projektu, co jest podstawą dobrych praktyk w branży inżynierii oprogramowania.

Pytanie 35

Pętla zapisana w języku PHP wstawi do tablicy liczby:

$x = 0;
for ($i = 0; $i < 10; $i++)
{
    $tabl[$i] = $x;
    $x = $x + 10;
}
A. 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
B. 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
C. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
D. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Gratulacje, Twoja odpowiedź jest poprawna. Pętla zaczyna się od $x = 0 i wykonuje się 10 razy ($i od 0 do 9). W każdej rundzie pętli, do tablicy $tabl dodawana jest aktualna wartość $x, a następnie $x jest zwiększane o 10. To jest tzw. pętla for, która jest jednym z najbardziej podstawowych mechanizmów programowania. Dzięki tej pętli możemy kontrolować ilość iteracji, które chcemy wykonać. W tym przypadku, iteracja odbywa się 10 razy, za każdym razem inkrementując $x o 10. Niezależnie od tego, czy korzystasz z PHP, czy innego języka, konstrukcje pętli są niezwykle ważne i warto zrozumieć ich działanie. PHP, jak wiele innych języków programowania, posiada wiele różnych typów pętli - for, while, do-while, each, które mają swoje szczególne zastosowania w zależności od kontekstu.

Pytanie 36

W skrypcie PHP konieczne jest stworzenie 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 należy wykorzystać funkcję:

A. setcookie("jabłko","owoce",time()+3600);
B. cookie("jabłko","owoce",3600);
C. cookie("owoce","jabłko",3600);
D. setcookie("owoce","jabłko",time()+3600);
Wybór niewłaściwej funkcji do ustawiania ciasteczka w PHP może prowadzić do nieprawidłowego działania aplikacji. Przykładowo, odpowiedzi, które używają funkcji cookie zamiast setcookie, są błędne, ponieważ w standardzie PHP nie istnieje funkcja o nazwie cookie. Dodatkowo, każda z odpowiedzi, która nieprawidłowo ustawia argumenty funkcji setcookie, wprowadza w błąd co do właściwego wykorzystania tego narzędzia. Warto zauważyć, że w odpowiedzi setcookie("jabłko","owoce",time()+3600) nie tylko zamieniono nazwy i wartości, ale także ich kolejność, co skutkuje błędnym ustawieniem ciasteczka. W PHP, pierwszy argument powinien być nazwą ciasteczka, a drugi - jego wartością. Niepoprawne podejście do tematu ciasteczek może prowadzić do problemów z przechowywaniem danych użytkowników, co jest kluczowe w kontekście UX i bezpieczeństwa aplikacji. W praktyce, przy każdym użyciu funkcji setcookie należy zwracać uwagę na to, aby przestrzegać konwencji i standardów PHP, co zapewnia nie tylko poprawność działania kodu, ale także jego czytelność oraz ułatwia późniejsze jego utrzymanie. Typowe błędy, takie jak pomylenie argumentów, mogą skutkować błędną logiką w aplikacji lub nawet brakiem możliwości zapisywania ważnych informacji w ciasteczkach. Dlatego kluczowe jest zrozumienie działania funkcji setcookie oraz przestrzeganie dobrych praktyk programistycznych.

Pytanie 37

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

<?php
$kolory = array("czarny", "zielony", "niebieski", "biały");
rsort($kolory);
$ile = count($kolory);
for($x = 0; $x < $ile; $x++)
{
  echo $kolory[$x].", ";
}
?>
A. czarny, zielony, niebieski, biały
B. zielony, niebieski, czarny, biały
C. biały, niebieski, zielony, czarny
D. biały, czarny, niebieski, zielony
Skrypt PHP wykorzystuje funkcję rsort() do sortowania tablicy w porządku malejącym alfabetycznie. W tym przypadku tablica zawiera kolory: czarny zielony niebieski biały. Funkcja rsort() zmienia kolejność elementów według malejącej wartości ASCII pierwszej litery każdego ciągu znakowego. Gdy tablica jest sortowana w ten sposób pierwsza spółgłoska kończy się na największym zestawie znaków ASCII. Dlatego wynik to zielony niebieski czarny biały. Po sortowaniu pętla for iteruje przez wszystkie elementy tablicy używając funkcji count() do określenia długości tablicy i wypisuje każdy kolor oddzielony przecinkiem. Użycie rsort() jest zgodne z dobrymi praktykami programistycznymi w przypadku gdy chcemy uzyskać szereg wsteczny np. do wyświetlania list w interfejsach użytkownika od końca do początku. Zapewnienie że dane wejściowe są poprawnie uporządkowane pozwala na efektywne zarządzanie danymi a zrozumienie tego procesu jest kluczowe w budowaniu dynamicznych aplikacji PHP.

Pytanie 38

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

A. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
B. uruchomienie kodu w języku PHP
C. zweryfikowanie wartości zmiennych użytych w kodzie PHP
D. analizowanie kodu PHP
Funkcja phpinfo() jest niezwykle przydatnym narzędziem, które dostarcza szczegółowych informacji na temat konfiguracji środowiska PHP na serwerze. Wywołanie tej funkcji generuje stronę HTML z danymi takimi jak wersja PHP, załadowane rozszerzenia, zmienne konfiguracyjne oraz informacje o systemie operacyjnym. Przykładowo, podczas rozwiązywania problemów z aplikacjami PHP, programiści mogą skorzystać z phpinfo() w celu weryfikacji, czy odpowiednie rozszerzenia są załadowane, co może być kluczowe dla poprawnego działania aplikacji. Dodatkowo, funkcja ta umożliwia identyfikację potencjalnych problemów z konfiguracją, takich jak niewłaściwie ustawione ścieżki do skryptów czy braki w wymaganych rozszerzeniach. Zgodnie z najlepszymi praktykami, phpinfo() powinno być używane tylko w środowiskach deweloperskich, a nie produkcyjnych, aby nie ujawniać wrażliwych informacji o serwerze. Dobrą praktyką jest również usunięcie lub zabezpieczenie dostępu do stron, które wywołują tę funkcję, aby zminimalizować ryzyko ataków.

Pytanie 39

W języku PHP funkcja trim służy do

A. określenia długości tekstu
B. redukcji tekstu o zdefiniowaną w parametrze liczbę znaków
C. usuwania białych znaków lub innych znaków wymienionych w parametrze z obu końców tekstu
D. porównywania dwóch tekstów i zwracania ich wspólnej części
Funkcja trim w języku PHP jest niezwykle przydatnym narzędziem, które ma na celu usuwanie białych znaków oraz innych określonych znaków z obu końców łańcucha tekstowego. Przykład użycia tej funkcji może być obserwowany w sytuacjach, gdy użytkownik wprowadza dane do formularza, gdzie często zdarza się, że na początku lub końcu tekstu pojawiają się zbędne spacje. Można to zignorować, ale może to prowadzić do problemów z walidacją danych, porównywaniem łańcuchów czy wstawianiem do bazy danych. Użycie funkcji trim pozwala więc na zachowanie czystości danych i ich lepsze przetwarzanie. Jako dobra praktyka, zawsze warto stosować trim przed dalszym przetwarzaniem tekstów w celu eliminacji potencjalnych błędów. Dodatkowo, funkcja trim może przyjmować drugi parametr, który pozwala na określenie, jakie znaki mają być usuwane. To zwiększa jej elastyczność w różnorodnych kontekstach aplikacji webowych, umożliwiając np. usuwanie niechcianych znaków z danych wejściowych.

Pytanie 40

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

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