-- UPDATED BY DEEPSEEK
-- analiza kodu
INSERT INTO questions (content, answerA, answerB, answerC, answerD, answerChar) VALUES
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A'),
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A'),
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A'),
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A'),
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A'),
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A'),
('Jaki będzie wynik działania poniższego kodu?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x + 3; ?&gt;', '5', '3', '8', 'Błąd składni', 'C'),
("Co wypisze poniższy kod PHP?<br/><br/>Kod:<br/>&lt;?php $a = '3'; $b = 4; echo $a + $b; ?&gt;", '34', '7', '3', 'Błąd typu', 'B'),
('Ile elementów ma tablica w tym kodzie?<br/><br/>Kod:<br/>&lt;?php $arr = [1, 2, 3]; echo count($arr); ?&gt;', '2', '3', '0', 'Błąd', 'B'),
("Co wypisze ten kod?<br/><br/>Kod:<br/>&lt;?php $x = 10; if ($x > 5) { echo 'duży'; } ?&gt;", 'mały', 'duży', 'nic', 'Błąd składni', 'B'),
('Jaki będzie wynik działania funkcji?<br/><br/>Kod:<br/>&lt;?php function foo($x) { return $x * 2; } echo foo(4); ?&gt;', '4', '8', '2', 'Błąd', 'B'),
("Co wypisze kod z operatorem warunkowym?<br/><br/>Kod:<br/>&lt;?php $x = 5; echo $x == 5 ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'true', 'false', 'A'),
('Jaka będzie wartość wypisana przez pętlę?<br/><br/>Kod:<br/>&lt;?php $i = 0; while($i < 3) { echo $i; $i++; } ?&gt;', '012', '123', '321', 'Błąd', 'A'),
("Jaki będzie wynik działania `isset()` dla $x = NULL?<br/><br/>Kod:<br/>&lt;?php $x = NULL; echo isset($x) ? 'tak' : 'nie'; ?&gt;", 'tak', 'nie', 'NULL', 'Błąd', 'B'),
("Co zostanie wypisane?<br/><br/>Kod:<br/>&lt;?php $x = [10 => 'a', 20 => 'b']; echo $x[10]; ?&gt;", '10', 'a', 'b', 'Błąd indeksu', 'B'),
("Jaką wartość wypisze kod?<br/><br/>Kod:<br/>&lt;?php $str = 'PHP'; echo strtolower($str); ?&gt;", 'php', 'PHP', 'Php', 'błąd', 'A');
-- teoria
INSERT INTO questions (content, answerA, answerB, answerC, answerD, answerChar) VALUES
('Co oznacza skrót PHP?', 'Personal Hypertext Processor', 'Private Home Page', 'PHP: Hypertext Preprocessor', 'Program Handling Protocol', 'C'),
('PHP jest językiem:', 'Kompilowanym', 'Interpretowanym', 'Deklaratywnym', 'Maszynowym', 'B'),
('Domyślnym rozszerzeniem pliku z kodem PHP jest:', '.html', '.phtml', '.php', '.js', 'C'),
('PHP działa głównie po stronie:', 'Klienta', 'Serwera', 'Przeglądarki', 'Bazy danych', 'B'),
('Które z poniższych to typy danych w PHP?', 'Integer, String, Float', 'Static, Final, Abstract', 'Byte, Char, Boolean', 'Function, Object, Method', 'A'),
('Które z poniższych NIE jest superglobalną zmienną w PHP?', '$_GET', '$_POST', '$_HTML', '$_SESSION', 'C'),
('Funkcja echo w PHP służy do:', 'Odczytu pliku', 'Wysyłania danych do przeglądarki', 'Tworzenia zmiennej', 'Wysyłania e-maila', 'B'),
('Instrukcja include w PHP:', 'Zatrzymuje skrypt w razie błędu', 'Dodaje zawartość pliku', 'Tworzy nowy plik', 'Wysyła zapytanie do bazy danych', 'B'),
('Który z poniższych operatorów służy do porównania wartości i typu?', '==', '=', '===', '=>', 'C'),
('PHP może być używany z następującym systemem zarządzania bazą danych:', 'MySQL', 'Mongo', 'Redis', 'Hadoop', 'A'),
('Jak rozpoczyna się blok kodu PHP?', '&lt;php&gt;', '&lt;?php', '&lt;script php&gt;', '&lt;?', 'B'),
('Która funkcja służy do sprawdzenia długości łańcucha znaków?', 'strlen()', 'length()', 'count()', 'size()', 'A'),
('Czym jest $GLOBALS w PHP?', 'Funkcją do globalizacji', 'Tablicą przechowującą wszystkie zmienne globalne', 'Zmienną sesyjną', 'Globalnym obiektem klas', 'B'),
('Czym jest $_SERVER?', 'Zmienna środowiskowa', 'Tablica danych o serwerze i środowisku', 'Funkcja do serwowania danych', 'Klasa sieciowa', 'B'),
('Funkcja isset() służy do:', 'Zmiany zmiennej', 'Ustawienia wartości', 'Sprawdzenia, czy zmienna istnieje', 'Inicjalizacji zmiennej', 'C'),
('Jakie słowo kluczowe definiuje funkcję w PHP?', 'function', 'def', 'method', 'func', 'A'),
('Która konstrukcja służy do obsługi wyjątków?', 'try-catch', 'try-else', 'if-error', 'exception-handler', 'A'),
('Który z poniższych mechanizmów służy do przechowywania danych między żądaniami HTTP?', 'Cookies', 'Echo', 'Include', 'Require', 'A'),
('Która zmienna zawiera dane przesłane metodą GET?', '$_POST', '$_DATA', '$_GET', '$_REQUEST', 'C'),
('Jakie słowo kluczowe kończy wykonanie funkcji i zwraca wartość?', 'return', 'exit', 'stop', 'break', 'A'),
('Która z tych zmiennych służy do pracy z sesją?', '$_COOKIE', '$_GET', '$_SESSION', '$_GLOBALS', 'C'),
('Która funkcja tworzy tablicę w PHP?', 'array()', 'list()', 'new array', 'create_array()', 'A'),
('Które rozszerzenie służy do obsługi baz danych MySQL w PHP?', 'PDO', 'MyPDO', 'MyDB', 'MySQLConnector', 'A'),
('Jakie słowo kluczowe służy do definiowania klasy?', 'class', 'struct', 'object', 'define', 'A'),
('Jak PHP traktuje zmienne niezainicjalizowane?', 'Ignoruje je', 'Zgłasza błąd krytyczny', 'Traktuje jako NULL', 'Ustawia na 0', 'C'),
('Jak zakończyć instrukcję w PHP?', 'kropką', 'dwukropkiem', 'średnikiem', 'znakiem zapytania', 'C'),
('Który z operatorów logicznych w PHP oznacza AND?', '&&', '||', '!', '&|', 'A'),
('Co oznacza słowo kluczowe ''final'' w PHP?', 'Funkcja nie może być wywołana', 'Klasa nie może być dziedziczona', 'Zmienna jest stała', 'Skrypt się kończy', 'B'),
('Która funkcja konwertuje tekst na wielkie litery?', 'strtoupper()', 'toupper()', 'strupper()', 'upper()', 'A'),
('Jak oznaczyć komentarz jednoliniowy w PHP?', '//', '/*', '#', '// lub #', 'D'),
('Który operator służy do przypisania wartości?', '==', '::', '=', '=>', 'C'),
('Które z poniższych NIE jest typem błędu w PHP?', 'E_NOTICE', 'E_ERROR', 'E_INFO', 'E_WARNING', 'C'),
('Co zwraca funkcja empty()?', 'true jeśli zmienna nie istnieje lub jest pusta', 'false zawsze', 'true zawsze', 'błąd', 'A'),
('Co zwraca funkcja is_array()?', 'true jeśli argument jest tablicą', 'false dla obiektów', 'true dla stringów', 'błąd', 'A'),
('Jak utworzyć stałą w PHP?', 'define()', 'const', 'setconst()', 'new const()', 'A'),
('Które słowo kluczowe wywołuje klasę nadrzędną?', 'super', 'parent', 'extends', 'base', 'B'),
('Czy PHP rozróżnia wielkość liter w nazwach zmiennych?', 'Tak', 'Nie', 'Czasami', 'Zależy od ustawień', 'A'),
('Która funkcja służy do usunięcia zmiennej?', 'unset()', 'delete()', 'remove()', 'erase()', 'A'),
('Jaką wartość zwróci strcmp("abc", "abc")?', 'true', '0', '1', '-1', 'B');
-- odpowiedzi kody
INSERT INTO questions (content, answerA, answerB, answerC, answerD, answerChar) VALUES
('Który fragment kodu wyświetli ''Hello World''?', '&lt;?php echo ''Hello World''; ?&gt;', '&lt;?php print(''Hello World''); ?&gt;', '&lt;?php echo("Hello World") ?&gt;', '&lt;?php echo Hello World; ?&gt;', 'A'),
('Jak zainicjować tablicę w PHP?', '$arr = array(1, 2, 3);', '$arr = [1, 2, 3];', '$arr = new array(1, 2, 3);', '$arr = create_array(1,2,3);', 'B'),
('Jak sprawdzić, czy zmienna $x istnieje i nie jest NULL?', 'isset($x);', 'empty($x);', 'defined($x);', '$x !== null;', 'A'),
('Jak zapisać instrukcję warunkową IF w PHP?', 'if ($x > 10) { echo $x; }', 'if $x > 10 then echo $x;', 'if: $x > 10 { echo $x; }', 'if $x > 10 { echo $x }', 'A'),
('Jak zdefiniować funkcję w PHP?', 'function add($a, $b) { return $a + $b; }', 'def add($a, $b): return $a + $b', 'func add($a, $b) { return $a + $b; }', 'create function add($a, $b) { return $a + $b; }', 'A'),
('Jak rozpocząć sesję w PHP?', 'session_start();', 'start_session();', 'session.begin();', 'begin_session();', 'A'),
('Jak zapisać komentarz jednoliniowy?', '// komentarz', '/* komentarz */', '# komentarz', '-- komentarz', 'D'),
('Jak sprawdzić długość łańcucha znaków?', 'strlen($str);', 'length($str);', 'count($str);', 'sizeof($str);', 'A'),
('Jak zadeklarować zmienną $name z wartością ''Jan''?', '$name = ''Jan'';', 'name = ''Jan'';', '$name := ''Jan'';', '$name == ''Jan'';', 'A'),
('Jak przypisać wartość do klucza ''imie'' w tablicy?', '$tab[''imie''] = ''Jan'';', '$tab-&gt;imie = ''Jan'';', '$tab.imie = ''Jan'';', 'tab[''imie''] = ''Jan'';', 'A'),
('Jak połączyć dwie tablice?', 'array_merge($a, $b);', '$a + $b;', 'merge($a, $b);', '$a.append($b);', 'A'),
('Jak ustawić ciasteczko w PHP?', 'setcookie(''user'', ''Jan'', time()+3600);', 'cookie_set(''user'', ''Jan'');', 'cookie(''user'') = ''Jan'';', 'addcookie(''user'', ''Jan'');', 'A'),
('Jak sprawdzić, czy tablica $a zawiera element?', 'in_array(''wartość'', $a);', '$a.contains(''wartość'');', 'array_has($a, ''wartość'');', '$a-&gt;includes(''wartość'');', 'A'),
('Jak wczytać plik i wyświetlić jego zawartość?', 'readfile(''plik.txt'');', 'fopen(''plik.txt'');', 'file.read(''plik.txt'');', 'getfile(''plik.txt'');', 'A'),
('Jak przypisać wartość domyślną, jeśli $x nie jest ustawione?', '$x = $x ?? ''default'';', '$x = isset($x) ? $x : ''default'';', '$x ||= ''default'';', '$x = $x or ''default'';', 'A'),
('Jak zainicjować pustą klasę?', 'class MyClass {}', 'defclass MyClass {}', 'MyClass = class {}', 'new class MyClass() {}', 'A'),
('Jak zadeklarować stałą?', 'define(''PI'', 3.14);', 'const PI = 3.14;', '$PI = 3.14;', 'static PI = 3.14;', 'A'),
('Jak pobrać dane z formularza metodą POST?', '$_POST[''name''];', '$_GET[''name''];', '$post(''name'');', '$_FORM[''name''];', 'A'),
('Jak połączyć się z bazą danych MySQL przez PDO?', 'new PDO(''mysql:host=localhost;dbname=test'', ''root'', '''');', 'pdo_connect(''localhost'', ''test'', ''root'', '''');', 'connect(''mysql'', ''test'');', 'PDO::connect(''localhost'');', 'A'),
('Jak zakończyć skrypt PHP?', 'exit();', 'break;', 'continue;', 'return;', 'A'),
('Jak wywołać metodę obiektu?', '$object-&gt;method();', '$object.method();', 'method($object);', 'object-&gt;method();', 'A'),
('Jak obsłużyć wyjątek w PHP?', 'try { /* kod */ } catch (Exception $e) { /* obsługa */ }', 'try: /* kod */ except Exception $e: /* obsługa */', 'try { /* kod */ } except (Exception $e) { /* obsługa */ }', 'catch (Exception $e) { /* kod */ }', 'A'),
('Jak zaimplementować pętlę foreach?', 'foreach ($array as $key =&gt; $value) { echo $value; }', 'for each $array as $key =&gt; $value { echo $value; }', 'foreach $array { echo $value; }', 'for ($array as $key =&gt; $value) { echo $value; }', 'A'),
('Jak zadeklarować zmienną statyczną w funkcji?', 'static $count = 0;', '$count = static 0;', 'var static $count = 0;', 'static var $count = 0;', 'A'),
('Jak wywołać funkcję anonimową?', '$func = function() { return 1; }; $func();', 'call(function() { return 1; });', 'function() { return 1; }();', 'func() = function() { return 1; };', 'A'),
('Jak sprawdzić typ zmiennej?', 'gettype($var);', 'typeof($var);', 'type($var);', 'var_type($var);', 'A'),
('Jak przekazać argument przez referencję?', 'function foo(&$var) { $var++; }', 'function foo(ref $var) { $var++; }', 'function foo(&var) { $var++; }', 'function foo(var&) { $var++; }', 'A'),
('Jak użyć operatora warunkowego (ternary)?', '$a = $x > 0 ? 1 : -1;', '$a = if($x > 0) 1 else -1;', '$a = ternary($x > 0, 1, -1);', '$a = $x > 0 then 1 else -1;', 'A'),
('Jak przekonwertować string na integer?', '(int)$str;', 'int($str);', 'intval($str);', 'toInt($str);', 'C'),
('Jak wywołać funkcję rekurencyjną?', 'function fact($n) { return $n &lt;= 1 ? 1 : $n * fact($n - 1); }', 'function fact($n) { return $n * fact($n + 1); }', 'fact(n) { return n * fact(n - 1); }', 'fact($n) { return $n * fact($n - 1); }', 'A'),
('Jak zainicjować zmienną globalną wewnątrz funkcji?', 'global $var;', '$GLOBALS["var"];', 'use global $var;', 'var global $var;', 'A'),
('Jak zadeklarować i użyć tablicę asocjacyjną?', '$arr = ["key" =&gt; "value"];', '$arr = {"key": "value"};', '$arr = array("key", "value");', '$arr = array("key" =&gt; "value");', 'D'),
('Jak wyświetlić zawartość tablicy?', 'print_r($arr);', 'print($arr);', 'echo $arr;', 'var_dump($arr);', 'A'),
('Jak dodać element na koniec tablicy?', '$arr[] = "nowy";', 'array_push($arr, "nowy");', '$arr-&gt;add("nowy");', 'append($arr, "nowy");', 'A'),
('Jak zdefiniować interfejs?', 'interface MyInterface { public function myMethod(); }', 'interface MyInterface { function myMethod(); }', 'class MyInterface { function myMethod(); }', 'interface MyInterface() { }', 'A'),
('Jak przekazać argument do funkcji z domyślną wartością?', 'function foo($x = 10) { return $x; }', 'function foo($x: 10) { return $x; }', 'function foo($x ? 10) { return $x; }', 'function foo($x == 10) { return $x; }', 'A'),
('Jak zadeklarować tablicę wielowymiarową?', '$arr = [[1,2],[3,4]];', '$arr = array(array(1,2), array(3,4));', '$arr = [[1,2], [3,4]];', 'Tylko B i C poprawne', 'D'),
('Jak skonwertować tablicę na JSON?', 'json_encode($arr);', 'json_encode_arr($arr);', 'toJSON($arr);', 'json($arr);', 'A'),
('Jak odczytać JSON do tablicy PHP?', 'json_decode($json, true);', 'json_parse($json);', 'json_to_array($json);', 'decode_json($json);', 'A'),
('Jak usunąć element z tablicy?', 'unset($arr[0]);', 'remove($arr, 0);', 'delete $arr[0];', 'array_remove($arr, 0);', 'A'),
('Jak złapać błąd podczas otwierania pliku?', 'try { fopen("file.txt", "r"); } catch (Exception $e) { echo $e-&gt;getMessage(); }', 'if (fopen("file.txt", "r") === false) { echo "Error"; }', 'open("file.txt") or die("Error");', 'fopen("file.txt", "r") or die("Error");', 'D'),
('Jak zadeklarować konstruktor w klasie?', 'public function __construct() {}', 'function constructor() {}', 'function __construct() {}', 'class() {}', 'C');
-- mysqli
INSERT INTO questions (content, answerA, answerB, answerC, answerD, answerChar) VALUES
('Jak nawiązać połączenie z bazą danych MySQL przy użyciu MySQLi?', 'Użyć funkcji mysqli_connect() z podaniem hosta, użytkownika, hasła i nazwy bazy', 'Użyć funkcji mysql_connect() z podaniem hosta i użytkownika', 'Użyć funkcji PDO z odpowiednim DSN', 'Użyć funkcji mysqli_open()', 'A'),
('Jak sprawdzić, czy połączenie MySQLi powiodło się?', 'Sprawdzić, czy właściwość connect_error jest pusta', 'Użyć funkcji mysqli_check_error()', 'Sprawdzić, czy funkcja mysqli_connect() zwraca true', 'Sprawdzić zmienną globalną $mysqli_error', 'A'),
('Jak wykonać zapytanie SELECT za pomocą MySQLi?', 'Użyć metody query() obiektu MySQLi', 'Użyć funkcji mysql_query()', 'Użyć funkcji mysqli_execute_query()', 'Użyć metody execute() obiektu MySQLi', 'A'),
('Jak pobrać pojedynczy wiersz z wyniku zapytania MySQLi?', 'Użyć metody fetch_assoc() na obiekcie wyniku', 'Użyć metody get_row()', 'Użyć funkcji mysqli_fetch_row()', 'Użyć metody row()', 'A'),
('Jak zamknąć połączenie MySQLi?', 'Wywołać metodę close() na obiekcie MySQLi', 'Użyć funkcji mysqli_close_connection()', 'Użyć funkcji close()', 'Połączenie zamyka się automatycznie, nie trzeba nic robić', 'A'),
('Jak przygotować zapytanie SQL z parametrami?', 'Użyć metody prepare() na obiekcie MySQLi', 'Użyć metody query()', 'Wstawić parametry bezpośrednio w zapytaniu', 'Użyć metody bind_param() bez wcześniejszego prepare()', 'A'),
('Jak powiązać parametry do zapytania przygotowanego w MySQLi?', 'Użyć metody bind_param() z odpowiednimi typami', 'Wstawić zmienne bezpośrednio do zapytania', 'Użyć funkcji bind()', 'Użyć metody execute_param()', 'A'),
('Jak wykonać przygotowane zapytanie?', 'Wywołać metodę execute() na obiekcie statement', 'Użyć metody run()', 'Wywołać metodę query()', 'Użyć funkcji mysqli_exec()', 'A'),
('Jak pobrać wszystkie wyniki zapytania MySQLi w formie tablicy asocjacyjnej?', 'Użyć metody fetch_all(MYSQLI_ASSOC)', 'Użyć metody fetch_array()', 'Użyć funkcji mysqli_get_all()', 'Użyć metody get_results()', 'A'),
('Jak pobrać liczbę zwróconych wierszy z wyniku zapytania?', 'Sprawdzić właściwość num_rows na obiekcie wyniku', 'Użyć funkcji mysqli_num_rows()', 'Użyć metody count_rows()', 'Sprawdzić właściwość rows_count', 'A'),
('Jak zabezpieczyć się przed SQL Injection w MySQLi?', 'Stosować przygotowane zapytania (prepared statements)', 'Ręcznie usuwać niebezpieczne znaki', 'Używać funkcji addslashes()', 'Używać mysql_real_escape_string()', 'A'),
('Jak rozpocząć transakcję w MySQLi?', 'Wywołać metodę begin_transaction() na obiekcie MySQLi', 'Wysłać zapytanie SQL "START TRANSACTION"', 'Użyć funkcji mysqli_start_transaction()', 'Nie można używać transakcji w MySQLi', 'A'),
('Jak zatwierdzić zmiany w transakcji MySQLi?', 'Wywołać metodę commit()', 'Wywołać metodę save()', 'Wywołać funkcję mysqli_commit()', 'Wysłać zapytanie SQL "COMMIT"', 'A'),
('Jak wycofać zmiany w transakcji MySQLi?', 'Wywołać metodę rollback()', 'Wywołać metodę cancel()', 'Wywołać funkcję mysqli_rollback()', 'Wysłać zapytanie SQL "ROLLBACK"', 'A'),
('Jak pobrać ID ostatnio wstawionego rekordu?', 'Użyć właściwości insert_id obiektu MySQLi', 'Użyć funkcji mysqli_insert_id()', 'Wywołać zapytanie SELECT LAST_INSERT_ID()', 'Wszystkie powyższe', 'D'),
('Jak pobrać informację o błędzie MySQLi?', 'Użyć właściwości error obiektu MySQLi', 'Użyć funkcji mysqli_error()', 'Wywołać metodę get_error()', 'Użyć właściwości last_error', 'A'),
('Jak uzyskać kod błędu z ostatniej operacji MySQLi?', 'Użyć właściwości errno', 'Użyć funkcji mysqli_errno()', 'Wywołać metodę get_errno()', 'Użyć właściwości error_code', 'A'),
('Co oznacza "prepare" w kontekście MySQLi?', 'Przygotowanie zapytania do wykonania z parametrami', 'Przygotowanie bazy danych do zapytania', 'Optymalizacja zapytania przez serwer', 'Automatyczne mapowanie wyników zapytania', 'A'),
('Jaka jest główna zaleta używania przygotowanych zapytań w MySQLi?', 'Zapobiegają atakom SQL Injection', 'Przyspieszają wykonanie zapytań o 100%', 'Ułatwiają pisanie kodu', 'Pozwalają na automatyczne tworzenie tabel', 'A');
-- dodatkowe pytania PHP
INSERT INTO questions (content, answerA, answerB, answerC, answerD, answerChar) VALUES
('Jak wyświetlić aktualną datę w formacie YYYY-MM-DD?', 'echo date("Y-m-d");', 'echo current_date();', 'print date("Y/m/d");', 'display_date("Y-m-d");', 'A'),
('Co zwraca funkcja strlen("Hello")?', '5', '6', '4', 'Błąd', 'A'),
('Jak sprawdzić, czy plik istnieje?', 'file_exists("plik.txt");', 'is_file("plik.txt");', 'check_file("plik.txt");', 'exists("plik.txt");', 'A'),
('Jak przekierować użytkownika na inną stronę?', 'header("Location: strona.php");', 'redirect("strona.php");', 'location("strona.php");', 'go_to("strona.php");', 'A'),
('Jak posortować tablicę rosnąco?', 'sort($array);', 'order($array);', 'asort($array);', 'array_sort($array);', 'A'),
('Jak pobrać wartość z tablicy asocjacyjnej?', '$array["klucz"];', '$array->klucz;', '$array(klucz);', 'get($array, "klucz");', 'A'),
('Jak usunąć białe znaki z początku i końca stringa?', 'trim($str);', 'strip($str);', 'clean($str);', 'remove_spaces($str);', 'A'),
('Jak zamienić wszystkie "e" na "a" w stringu?', 'str_replace("e", "a", $str);', 'replace("e", "a", $str);', 'str_swap("e", "a", $str);', 'change_chars("e", "a", $str);', 'A'),
('Jak sprawdzić, czy zmienna jest tablicą?', 'is_array($var);', 'check_array($var);', 'array_check($var);', 'isType($var, "array");', 'A'),
('Jak wygenerować losową liczbę od 1 do 10?', 'rand(1, 10);', 'random(1, 10);', 'mt_rand(1, 10);', 'rand_int(1, 10);', 'A'),
('Jak odczytać zawartość pliku do stringa?', 'file_get_contents("plik.txt");', 'read_file("plik.txt");', 'get_file("plik.txt");', 'file_read("plik.txt");', 'A'),
('Jak zapisać dane do pliku?', 'file_put_contents("plik.txt", $data);', 'write_file("plik.txt", $data);', 'save("plik.txt", $data);', 'file_write("plik.txt", $data);', 'A'),
('Jak sprawdzić, czy zmienna jest liczbą?', 'is_numeric($var);', 'is_number($var);', 'check_numeric($var);', 'is_int($var);', 'A'),
('Jak połączyć dwa stringi?', '$str1 . $str2;', 'concat($str1, $str2);', 'join($str1, $str2);', '$str1 + $str2;', 'A'),
('Jak usunąć element z końca tablicy?', 'array_pop($array);', 'remove_end($array);', 'delete_last($array);', 'array_remove_end($array);', 'A'),
('Jak dodać element na początek tablicy?', 'array_unshift($array, $element);', 'add_first($array, $element);', 'array_add_first($array, $element);', 'prepend($array, $element);', 'A'),
('Jak sprawdzić, czy klucz istnieje w tablicy?', 'array_key_exists("klucz", $array);', 'key_exists("klucz", $array);', 'isset($array["klucz"]);', 'has_key($array, "klucz");', 'A'),
('Jak zamienić tablicę na string z separatorami?', 'implode(",", $array);', 'join(",", $array);', 'array_to_string($array, ",");', 'combine(",", $array);', 'A'),
('Jak rozdzielić string na tablicę?', 'explode(",", $str);', 'split(",", $str);', 'str_split(",", $str);', 'divide(",", $str);', 'A'),
('Jak zmienić wielkość liter na małe?', 'strtolower($str);', 'to_lower($str);', 'lowercase($str);', 'make_lower($str);', 'A'),
('Jak wyświetlić zawartość tablicy?', 'print_r($array);', 'display($array);', 'show($array);', 'echo_array($array);', 'A'),
('Jak sprawdzić, czy zmienna jest pusta?', 'empty($var);', 'is_empty($var);', 'check_empty($var);', 'isset($var);', 'A'),
('Jak zadeklarować stałą?', 'define("NAZWA", wartość);', 'const NAZWA = wartość;', 'constant("NAZWA", wartość);', 'set("NAZWA", wartość);', 'A'),
('Jak pobrać długość tablicy?', 'count($array);', 'length($array);', 'array_length($array);', 'size($array);', 'A'),
('Jak wywołać funkcję z parametrami?', 'funkcja($param1, $param2);', 'call funkcja($param1, $param2);', 'run funkcja($param1, $param2);', 'execute funkcja($param1, $param2);', 'A'),
('Jak utworzyć obiekt klasy?', 'new Klasa();', 'create Klasa();', 'object Klasa();', 'make Klasa();', 'A'),
('Jak odwołać się do metody obiektu?', '$obiekt->metoda();', '$obiekt.metoda();', '$obiekt::metoda();', 'call $obiekt.metoda();', 'A'),
('Jak odwołać się do właściwości obiektu?', '$obiekt->wlasciwosc;', '$obiekt.wlasciwosc;', '$obiekt::wlasciwosc;', 'get $obiekt.wlasciwosc;', 'A'),
('Jak utworzyć konstruktor w klasie?', 'function __construct() {}', 'function constructor() {}', 'function init() {}', 'function create() {}', 'A'),
('Jak sprawdzić typ zmiennej?', 'gettype($var);', 'type($var);', 'var_type($var);', 'typeof($var);', 'A');