diff --git a/README.md b/README.md
index e3cb02fd5b..3925527a53 100644
--- a/README.md
+++ b/README.md
@@ -129,7 +129,7 @@ Want to contribute? [Here](https://github.com/linkedin-faq) is the source code.
| [NoSQL](nosql/nosql-quiz.md) | | | 51 | 51 | |
| [objective-c](objective-c/objective-c-quiz.md) | | | 51 | 51 | |
| [OOP](object-oriented-programming/object-oriented-programming-quiz.md) | | [](object-oriented-programming/object-oriented-programming-quiz-ua.md) | 122 | 122 | [@declarck](https://github.com/declarck), [@gaurovgiri](https://github.com/gaurovgiri) |
-| [PHP](php/php-quiz.md) | | | 105 | 105 | [@ruslanbes](https://github.com/ruslanbes), [@msteiner96](https://github.com/msteiner96) |
+| [PHP](php/php-quiz.md) | |[](php/php-quiz-ua.md) | 105 | 105 | [@ruslanbes](https://github.com/ruslanbes), [@msteiner96](https://github.com/msteiner96) |
| [Pro Tools](pro-tools/pro-tools-quiz.md) | | | 16 | 16 | |
| [Python](python/python-quiz.md) | | [](python/python-quiz-es.md) | 184 | 184 | [@tik9](https://github.com/tik9), [@Amsal1](https://github.com/Amsal1), [@declarck](https://github.com/declarck), [@TSG405](https://github.com/tsg405) |
| [QuickBooks](quickbooks/quickbooks-quiz.md) | ❗needs updating | | 67 | 40 | |
diff --git a/php/php-quiz-ua.md b/php/php-quiz-ua.md
new file mode 100755
index 0000000000..ba83bd3e82
--- /dev/null
+++ b/php/php-quiz-ua.md
@@ -0,0 +1,1621 @@
+## PHP
+
+#### Q1. Що виведе цей код?
+
+`echo 76 <=> '76 trombones';`
+
+- [ ] 1
+- [ ] -1
+- [ ] a parser error
+- [x] 0
+
+**_Обидві сторони "космічного корабля" рівні, тому відповідь 0. PHP перетворить '76 trombones' на 76 у цьому контексті, оскільки рядок починається з '76'. Спробуйте!_**
+**_Для PHP 8.0 і новіших відповідь [x] -1, для попередніх версій відповідь [x] 0._**
+[PHP 8 змінив спосіб роботи нестрогого порівняння між числами та нечисловими рядками.](https://www.php.net/manual/uk/migration80.incompatible.php#migration80.incompatible.core.string-number-comparision)
+
+#### Q2. Який найбезпечніший спосіб уникнути зберігання пароля у відкритому тексті в базі даних?
+
+- [ ] `$encrypted = shal($password);`
+- [ ] `$encrypted = crypt($password, \$salt);`
+- [ ] `$encrypted = md5($password);`
+- [x] `$encrypted = password_hash($password, PASSWORD_DEFAULT);`
+
+#### Q3. Що робить цей скрипт?
+
+```php
+$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
+if ($email === false) {
+ $emailErr = "Please re-enter valid email";
+}
+```
+
+- [ ] Він перевіряє, чи є адреса електронної пошти правильною та функціональною
+- [ ] Він робить адресу електронної пошти безпечною для введення в базу даних
+- [ ] Він присвоює адресу електронної пошти змінній, а потім видаляє всі недійсні символи з змінної \$email
+- [x] Він перевіряє, чи правильно сформована адреса електронної пошти.
+
+#### Q4. У наступному скрипті, які рядки викличуть помилку?
+
+```php
+1
+```
+
+- [ ] Рядок 6 викличе помилку, оскільки не можна присвоїти нове значення змінній, яка вже була встановлена.
+- [x] Рядки 7 і 8 викличуть помилку. У рядку 7 є пробіл у $will i work, і має бути $will_i_work. Рядок 8 не може починатися з числа, оскільки це змінна.
+- [ ] Рядок 5 викличе помилку, оскільки some_string має бути someString.
+- [ ] Рядки 3 і 4 викличуть помилку, оскільки змінна не може починатися з підкреслення (\_).
+
+#### Q5. У умовному операторі потрібно виконати код лише тоді, коли обидва значення є істинними. Який оператор порівняння слід використовувати?
+
+- [ ] ||
+- [ ] &
+- [ ] <=>
+- [x] &&
+
+#### Q6. З якого символу починаються всі змінні в PHP?
+
+- [ ] &
+- [ ] %
+- [ ] \_
+- [x] $
+
+#### Q7. У чому ключова різниця між GET і POST?
+
+- [ ] GET використовується з протоколом HTTP. POST використовується з HTTPS.
+- [x] GET відображає надіслані дані як частину URL. Під час POST ця інформація не показується, оскільки вона закодована в тілі запиту.
+- [ ] GET призначений для зміни стану сервера і несе більше даних, ніж POST.
+- [ ] GET є безпечнішим за POST і має використовуватися для конфіденційної інформації.
+
+#### Q8. **Оператор корисний для операцій сортування. Він порівнює два значення та повертає ціле число, менше, рівне або більше 0, залежно від того, чи є значення** меншим, рівним або більшим за інше.
+
+- [ ] більше; праворуч
+- [x] космічний корабель; ліворуч
+- [ ] рівність; праворуч
+- [ ] порівняння; ліворуч
+
+#### Q9. Які є чинні ключові слова для обробки помилок у PHP?
+
+- [ ] try, throw, catch, callable
+- [ ] try, yield, catch, finally
+- [ ] yield, throw, catch, finally
+- [x] try, throw, catch, finally
+
+#### Q10. Яке значення дорівнює істині?
+
+- [ ] 0
+- [ ] NULL
+- [ ] ''
+- [x] -1
+
+#### Q11. Чого не вистачає в цьому коді, який має створити тестові куки?
+
+```php
+$string_name = "testcookie";
+$string_value = "This is a test cookie";
+$expiry_info = info()+259200;
+$string_domain = "localhost.localdomain";
+```
+
+- [ ] Відсутній `$_REQUEST`.
+- [ ] Відсутній масив `$_COOKIES`.
+- [ ] Відсутня сесія куки.
+- [x] Відсутній виклик `setcookie()`.
+
+#### Q12. Яке значення має \$total у цьому обчисленні?
+
+`$total = 2 + 5 * 20 - 6 / 3`
+
+- [ ] 44
+- [ ] 138
+- [ ] 126
+- [x] 100
+
+#### Q13. Яка мета додавання малої літери "u" як модифікатора після останнього роздільника в регулярному виразі, сумісному з Perl?
+
+- [ ] Це змушує метасимвол крапки відповідати будь-чому, включаючи символи нового рядка.
+- [ ] Це змушує шаблон відповідати великим літерам.
+- [x] І шаблон, і рядок обробляються як UTF-8.
+- [ ] Це змінює жадібність квантифікаторів у шаблоні, щоб вони не були жадібними за замовчуванням.
+
+#### Q14. Який фрагмент коду використовує правильний синтаксис для створення екземпляра класу Pet?
+
+- [ ] `$dog = new Pet;`
+- [x] всі ці відповіді
+- [ ] `$horse = (new Pet);`
+- [ ] `$cat = new Pet();`
+
+#### Q15. Як найкраще пояснити, що робить цей скрипт?
+
+```php
+if (!$_SESSION['myusername'])
+{
+ header('locaton: /login.php');
+ exit;
+}
+```
+
+- [ ] Цей скрипт завершує сесію для myusername.
+- [ ] Куки починають зберігатися в результаті цього скрипту.
+- [ ] Цей скрипт перевіряє ім'я користувача та пароль.
+- [x] Цей скрипт знаходиться на сторінці, яка вимагає входу користувача. Він перевіряє, чи є у користувача дійсна сесія.
+
+#### Q16. Який правильний формат для додавання коментаря до PHP-скрипту?
+
+- [x] всі ці відповіді
+- [ ] #Це коментар
+- [ ] `/* Це коментар */`
+- [ ] // Це коментар
+
+#### Q17. PHP підтримує кілька типів циклів. Якщо потрібно виконати блок коду, якщо і поки вказана умова є істинною, який тип циклу слід використовувати?
+
+- [ ] for
+- [ ] do-while
+- [x] while
+- [ ] foreach
+
+#### Q18. Функція `ignore_user_abort( )` встановлює, чи має відключення клієнта припинити виконання скрипту. У якому сценарії веброзробник використовуватиме цю функцію?
+
+- [ ] Використовується для запобігання натисканню користувачем кнопки "Назад", якщо він вирішить не переглядати результат кліку.
+- [x] Використовується, якщо є важливий процес, який не можна зупинити, навіть якщо користувачі натискають "Скасувати".
+- [ ] Використовується для припинення скрипту для всіх авторизованих користувачів, а не лише для того, хто відключився.
+- [ ] Використовується, якщо потрібно, щоб PHP-скрипт працював вічно.
+
+#### Q19. Функція PHP array_reduce() приймає функцію зворотного виклику, яка приймає значення, що передається через кожну ітерацію, і поточний елемент масиву, і зводить масив до одного значення. Який приклад коду підсумує та виведе значення в наданому масиві?
+
+- [ ]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+- [x]
+
+```php
+
+```
+
+#### Q20. Який PHP-скрипт використовує конструктор для відображення рядка "Зима майже закінчилася!"?
+
+- [x]
+
+```php
+ class MyClass {
+ public function _construct()
+ {
+ echo 'Зима майже закінчилася!'."\n";
+ }
+ }
+ $userclass = new MyClass;
+```
+
+- [ ]
+
+```php
+ class MyClass {
+ public function _construct()
+ {
+ echo 'Зима майже закінчилася!.."\n";
+ }
+ }
+ $userclass = new MyClass;
+```
+
+- [ ]
+
+```php
+ class MyClass {
+ public function _construct()
+ {
+ echo 'Зима майже закінчилася!.."\n";
+ }
+ }
+ $userclass = new MyClass;
+```
+
+- [ ]
+
+```php
+ class MyClass {
+ public function _construct()
+ {
+ echo 'Зима майже закінчилася!'."n";
+ }
+ }
+ $userclass = MyClass;
+```
+
+#### Q21. Як можна усунути помилку "call to undefined function"?
+
+- [ ] Переконатися, що імпортовано файл, що містить функцію.
+- [ ] Переконатися, що ім'я функції написано правильно.
+- [x] всі ці відповіді
+- [ ] Переконатися, що оголошення функції знаходиться раніше в коді, ніж виклик функції.
+
+#### Q22. Який рядок НЕ можна використовувати для коментування "Космос: останній рубіж"?
+
+- [ ] `/* Космос: останній рубіж */`
+- [x] `*/ Космос: останній рубіж /*`
+- [ ] `#Космос: останній рубіж`
+- [ ] `// Космос: останній рубіж`
+
+#### Q23. Що відображається в браузері, коли написано наступний код? ``
+
+- [ ] Браузер нічого не відобразить через синтаксичну помилку.
+- [ ] Браузер відобразить помилку, оскільки немає дужок навколо рядка.
+- [x] Браузер відобразить `Скільки коштують банани?`
+- [ ] Браузер відобразить помилку, оскільки в кінці команди echo немає крапки з комою.
+
+#### Q24. Який оператор використовується для знаходження залишку після ділення?
+
+- [ ] /
+- [x] %
+- [ ] //
+- [ ] DIV
+
+#### Q25. Яке значення мають три крапки в сигнатурі цієї функції?
+
+```php
+function process(...$vals) {
+ // виконується обробка
+}
+```
+
+- [ ] Це робить функцію варіативною, дозволяючи приймати як аргумент масив, що містить довільну кількість значень.
+- [x] Це робить функцію варіативною, дозволяючи приймати довільну кількість аргументів, які перетворюються на масив усередині функції.
+- [ ] Це тимчасово вимикає функцію під час налагодження інших частин скрипту.
+- [ ] Це нагадування типу TO DO, яке автоматично викликає повідомлення під час запуску скрипту до завершення визначення функції.
+
+#### Q26. Припустимо, що клас `Horse` існує, який приклад успадкування є правильним у PHP?
+
+- [x] `class Pegasus extends Horse {}`
+- [ ] `class Alicorn imports Pegasus, Unicorn {}`
+- [ ] `class Unicorn implements Horse {}`
+- [ ] `class Horse inherits Unicorn {}`
+
+#### Q27. І потрійне ===, і подвійне == можна використовувати для **змінних у PHP. Якщо потрібно перевірити, що рядок "33" і число 33 рівні, слід використовувати** . Якщо потрібно перевірити, чи містить масив певне рядкове значення за певним індексом, слід використовувати \_
+
+- [x] порівняння; подвійне; потрійне
+- [ ] порівняння; потрійне; подвійне
+- [ ] присвоєння; потрійне; подвійне
+- [ ] присвоєння; подвійне; потрійне
+
+#### Q28. Сторінка PHP несподівано відображається повністю порожньою. Який крок допоможе пролити світло на проблему?
+
+- [ ] Додати цей код на початок скрипту: `ini_set('display_errors',1);`
+- [ ] Перевірити журнал помилок сервера
+- [x] всі ці відповіді
+- [ ] Переконатися, що не пропущено жодної крапки з комою
+
+#### Q29. Який спосіб створення масиву "seasons" є правильним?
+
+- [ ]
+
+```php
+seasons=array(
+ 1=>'spring',
+ 2=>'summer',
+ 3=>'autumn',
+ 4=>'winter',
+);
+```
+
+- [ ] `$seasons=array(spring,summer,autumn,winter);`
+- [ ] `$seasons=('spring','summer','autumn','winter');`
+- [x] `$seasons=['spring','summer','autumn','winter'];`
+
+#### Q30. І `self`, і `this` є ключовими словами, які можна використовувати для посилання на змінні-члени класу. Різниця полягає в тому, що `$this->member` слід використовувати для **членів \_, а `self::$member` слід використовувати для** членів \_.
+
+- [ ] приватних, публічних
+- [ ] об'єктних, примітивних
+- [x] нестатичних, статичних
+- [ ] конкретних, абстрактних
+
+#### Q31. Що виведе цей код?
+
+```php
+$mathe=array('archi','euler','pythagoras');
+array_push($mathe,'hypatia');
+array_push($mathe,'fibonacci');
+array_pop($mathe);
+echo array_pop($mathe);
+echo sizeof($mathe);
+```
+
+- [ ] euler3
+- [ ] hypatia5
+- [x] hypatia3
+- [ ] fibonacci4
+
+#### Q32. Ви використовуєте наступний код для пошуку улюбленого гурту користувача, але він повертає false. Який крок(и) вирішить проблему?
+
+`isset ($_GET['fav_band'])`
+
+- [ ] перевірити, чи включено `fav_band` у рядок запиту у верхній частині браузера
+- [x] всі відповіді
+- [ ] переглянути вихідний код форми та переконатися, що є поле введення з ім'ям 'fav_band'
+- [ ] вивести усе, що було передано в запиті: `print_r($_REQUEST);`
+
+#### Q33. Який код ви б використали для виведення всіх елементів масиву під назвою `$cupcakes`?
+
+- [x] всі відповіді
+- [ ] `print_r($cupcakes);`
+- [ ] `var_dump($cupcakes);`
+- [ ] `foreach($cupcakes as &$cupcake) echo $cupcake;`
+
+#### Q34. Що є причиною 'Cannot modify header information - headers already sent'?
+
+- [ ] Спроба змінити приватне значення
+- [ ] Пропущено крапку з комою
+- [ ] Використання ключа в масиві, якого не існує
+- [x] Деякий HTML надсилається перед командою `header()`, яка використовується для перенаправлення
+
+#### Q35. Яка структура керування PHP використовується всередині циклу для пропуску решти коду поточного циклу та повернення до початку циклу для наступної ітерації?
+
+- [ ] `else`
+- [ ] `break`
+- [ ] `return`
+- [x] `continue`
+
+#### Q36. Оператор заперечення PHP - це !. Враховуючи фрагмент, чи є виведення і яке воно?
+
+```php
+
+```
+
+- [ ] є виведення '2 є парним числом'
+- [x] виведення '21 є непарним числом'
+- [ ] немає виведення. Синтаксична помилка через відсутність крапки з комою в кінці
+- [ ] немає виведення через % у \$num%2!=0
+
+#### Q37. Потрібно перелічити модулі, доступні у установці PHP. Яку команду слід виконати?
+
+- [ ] `php -h`
+- [ ] `php info`
+- [ ] `php -v`
+- [x] `php -m`
+
+#### Q38. Для наведеної нижче HTML-форми, який скрипт правильно перевіряє введення "mail", щоб переконатися, що воно заповнене перед продовженням?
+
+```html
+
+```
+
+- [x]
+
+```php
+if (!empty($_POST["mail"])) {
+ echo "Yes, mail is set";
+} else {
+ echo "No, mail is not set";
+}
+```
+
+- [ ]
+
+```php
+if ($_POST["mail"] == "") {
+ echo "No, mail is not set";
+} else {
+ echo "Yes, mail is set";
+}
+```
+
+- [ ]
+
+```php
+if (isset($_POST["mail"])) {
+ echo "Yes, mail is set";
+} else {
+ echo "No, mail is not set";
+}
+```
+
+- [ ]
+
+```php
+if ($_POST["mail"]) {
+ echo "Yes, mail is set";
+} else {
+ echo "No, mail is not set";
+}
+```
+
+#### Q39. Яке значення має `$result` у цьому обчисленні?
+
+`$result = 25 % 6;`
+
+- [ ] 4.167
+- [ ] 1.5
+- [ ] 4
+- [x] 1
+
+#### Q40. Яка роль контролера як компонента в MVC?
+
+- [x] Контролер обробляє дані, передані йому представленням, а також передає дані представленню. Він інтерпретує дані, надіслані представленням, і передає ці дані відповідним моделям, очікуючи результатів для передачі назад у представлення.
+- [ ] Контролер — це механізм, який дозволяє створювати багаторазовий код у таких мовах, як PHP, де множинне успадкування не підтримується.
+- [ ] Контролер представляє вміст через інтерфейс користувача після безпосереднього спілкування з базою даних.
+- [ ] Контролер обробляє конкретні завдання, пов’язані з певною областю функціональності, обробляє бізнес-логіку, пов’язану з результатами, і безпосередньо взаємодіє з базою даних.
+
+#### Q41. Чому цей код викликає помилку?
+
+`$string = 'В цієї дев'яносторічної старої зберігались уже сімдесят років її весільні вбрання з розкішних ліонських шовків, гаптованих золотом.';`
+
+- [ ] Рядки завжди слід обгортати в подвійні лапки, а подвійні лапки всередині рядка слід екранувати зворотними косими рисками.
+- [ ] Усі одинарні та подвійні лапки всередині рядка потрібно екранувати зворотними косими рисками, щоб уникнути помилки парсера.
+- [ ] Відкриваючі та закриваючі одинарні лапки слід замінити на подвійні лапки, а апостроф слід екранувати зворотною косою рискою.
+- [x] Апостроф потрібно екранувати зворотною косою рискою, щоб він не сприймався як закриваюча лапка.
+
+#### Q42. Об'єкт PDO під назвою `$db` налаштований для використання в операціях з базою даних, включаючи автентифікацію користувачів. Усі властивості, пов’язані з користувачем, встановлені. Рядок скрипту `public function __construct(&$db)` показує конструктор, який ініціалізує всі властивості, пов’язані з користувачем, на \_, якщо жоден користувач не увійшов у систему. Ці параметри будуть правильно встановлені функціями входу, коли користувач увійде в систему.
+
+- [x] NULL
+- [ ] TRUE
+- [ ] FALSE
+- [ ] 0
+
+#### Q43. Припустимо, що `$first_name` і `$family_name` є дійсними рядками, який вираз є недійсним?
+
+- [ ] `echo $first_name. ' '. $family_name;`
+- [x] `print $first_name, ' ', $family_name;`
+- [ ] `print $first_name. ' '. $family_name;`
+- [ ] `echo $first_name, ' ', $family_name;`
+
+#### Q44. Який фрагмент коду демонструє інкапсуляцію?
+
+- [ ]
+
+```php
+ class Cow extends Animal {
+ private $milk;
+ }
+```
+
+- [ ]
+
+```php
+ class Cow {
+ public $milk;
+ }
+ $daisy = new Cow();
+ $daisy->milk = "creamy";
+```
+
+- [ ]
+
+```php
+ class Cow {
+ public $milk;
+ function getMilk() {`
+ return $this->milk;
+ }
+ }
+```
+
+- [x]
+
+```php
+ class Cow {
+ private $milk;
+ public function getMilk() {
+ return $this->milk;
+ }
+ }
+```
+
+#### Q45. Наступний XML-документ знаходиться в books.xml. Який код виведе "Історичне"?
+
+```xml
+
+
+ Розповідь про два міста
+ Чарльз Диккенз
+
+ Класичне
+ Історичне
+
+
+
+ А потім не було нічого
+ Агата Кристі
+
+ Таємне
+
+
+
+```
+
+- [ ]
+
+```php
+ $books = simplexml_load_string('books.xml');
+ echo $books->book[0]->categories->category[1];
+```
+
+- [x]
+
+```php
+ $books = simplexml_load_file('books.xml');
+ echo $books->book[0]->categories->category[1];
+```
+
+- [ ]
+
+```php
+ $books = SimpleXMLElement('books.xml');
+ echo $books->book[0]->categories->category[1];
+```
+
+- [ ]
+
+```php
+ $books = SimpleXML('books.xml');
+ echo $books->book[0]->categories->category[1];
+```
+
+#### Q46. Коли йдеться про значення змінної, яка різниця між NULL і empty?
+
+- [ ] NULL — це порожнє значення; empty — це відсутність значення.
+- [ ] Значення NULL має виділену адресу в пам’яті; empty — ні.
+- [ ] NULL стосується відсутності значення для цілого числа; empty стосується відсутності значення для рядка.
+- [x] NULL — це відсутність значення; empty — це порожнє значення.
+
+#### Q47. Яка була б гарна назва для цієї функції?
+
+```php
+function doStuff($haystack, $needle) {
+ $length = strlen($needle)
+ if (substr($haystack, 0, $length) == $needle)
+ return true;
+ else
+ return false;
+}
+```
+
+- [ ] `equals`
+- [ ] `endsWith`
+- [x] `startsWith`
+- [ ] `contains`
+
+#### Q48. Якщо потрібно передати поле форми на іншу сторінку під час натискання кнопки, слід використовувати **. Якщо потрібно зберігати інформацію на кількох сторінках, слід використовувати**?
+
+- [ ] request; response
+- [ ] response; request
+- [ ] session; request
+- [x] request; session
+
+#### Q49. Ви використовуєте наступний код, щоб визначити, чи натиснута кнопка, але він ніколи не повертає true. Який крок, ймовірно, допоможе вирішити проблему?
+
+```php
+isset($_POST['submit'])
+```
+
+- [x] Переконатися, що поле введення, яке відображає кнопку, називається 'submit'
+- [ ] Переконатися, що не пропущено жодної крапки з комою
+- [ ] Вивести усе в сесії `print_r($_SESSION);`
+- [ ] Подивитися в рядок запиту у верхній частині браузера, щоб побачити, чи присвоєно submit значення
+
+#### Q50. Чому слід дотримуватися стандарту PSR?
+
+- [x] тому що стандарти кодування часто відрізняються між розробниками та компаніями
+- [ ] тому що стандарти кодування контролюються на відповідність між розробниками та компаніями
+- [ ] тому що існують обов’язкові стандарти кодування серед розробників і компаній
+- [ ] якщо використовуються певні платформи, оскільки PSR застосовуються лише до цих платформ
+
+#### Q51. Що таке гетери та сетери?
+
+- [ ] Гетери та сетери забезпечують, виконання наступної умови - якщо член даних оголошений приватним, то він може бути доступний лише в межах тієї ж функції, а не у зовнішньому класі
+- [ ] Гетери та сетери — це утиліти в PHP, які дозволяють завантажувати з бази даних і зберігати в неї
+- [ ] Гетери та сетери інкапсулюють поля класу, роблячи їх доступними лише через приватні методи, а самі значення залишаються публічними
+- [x] Гетери та сетери — це методи, які використовуються для оголошення або отримання значень змінних, зазвичай приватних
+
+#### Q52. Які рекомендовані налаштування у файлі конфігурації PHP, php.ini, для тестового середовища?
+
+- [ ]
+
+```php
+ report_errors = E_ALL
+ display_errors = On
+```
+
+- [x]
+
+```php
+ error_reporting = E_ALL
+ display_errors = On
+```
+
+- [ ]
+
+```php
+ error_reporting = E_ALL & ~E_NOTICE
+ display_errors = Off
+```
+
+- [ ]
+
+```php
+ error_reporting = E_ALL & ~E_NOTICE
+ display_errors = On
+```
+
+#### Q53. Яка змінна PHP є недійсною?
+
+- [ ] `$Double`
+- [ ] `$double`
+- [ ] `$_2times`
+- [x] `$2times`
+
+#### Q54. Яка команда витягне суфікс домену ("com") зі строки `$string = "https://cat-bounce.com";`?
+
+- [ ] `sub($string, -3)`
+- [x] `substr($string, -3)`
+- [ ] `substr($string, 3)`
+- [ ] `$string.substr(-3)`
+
+#### Q55. Де виконується PHP-код?
+
+- [ ] у браузері клієнта
+- [ ] у віртуальній машині
+- [ ] у пам'яті комп'ютера, що переглядає вебсторінку
+- [x] на вебсервері
+
+#### Q56. Яка з наведених магічних констант є недійсною?
+
+- [x] `__RESOURCE__`
+- [ ] `__FUNCTION__`
+- [ ] `__CLASS__`
+- [ ] `__TRAIT__`
+
+[Довідка](https://www.php.net/manual/uk/language.constants.magic.php)
+
+#### Q57. Що виведе наступний скрипт?
+
+```php
+ if( 1 == true){
+ echo "1";
+ }
+
+ if( 1 === true){
+ echo "2";
+ }
+
+ if("php" == true){
+ echo "3";
+ }
+
+ if("php" === false){
+ echo "4";
+ }
+```
+
+- [ ] 134
+- [x] 13
+- [ ] 1
+- [ ] 123
+
+#### Q58. Коли слід використовувати цей PHP-скрипт?
+
+```php
+$secret_word = 'if i ate spinach';
+setcookie('login', $_REQUEST['username']. ','. md5($_REQUEST['username'].$secret_word));
+```
+
+- [ ] коли користувач оплачує товар онлайн
+- [ ] коли товари додаються до кошика
+- [ ] при першій реєстрації
+- [x] при кожному вході, для безпеки
+
+#### Q59. PHP "variable variable" приймає значення змінної та використовує його як ім'я змінної. Наприклад, якщо `$var` — це змінна, то `$$var` — це змінна змінна, ім'я якої є значенням `$var`. Який скрипт виведе наступний результат, використовуючи змінні змінні?
+
+```plaintext
+Cat
+Dog
+Dog
+```
+
+- [ ] :
+
+```php
+ $name = "Cat";
+ $name = "Dog";
+ echo $name . "
";
+ echo $$name . "
";
+ echo $Dog;
+```
+
+- [ ] :
+
+```php
+ $name = "Cat";
+ $$name = "Dog";
+ echo $name . "
";
+ echo $$name . "
";
+ echo $Dog;
+```
+
+- [x] :
+
+```php
+ $name = "Cat";
+ $$name = "Dog";
+ echo $name . "
";
+ echo $$name . "
";
+ echo $Cat;
+```
+
+- [ ] :
+
+```php
+ $name = "Cat";
+ $$name = "Dog";
+ echo $name . "
";
+ echo $name . "
";
+ echo $Cat;
+```
+
+#### Q60. Уявіть вебзастосунок, побудований за архітектурою MVC, який містить вікторину та кнопку для підрахунку балів. Коли користувач натискає кнопку "Підрахувати", який компонент має обробити запит?
+
+- [ ] маршрутизатор
+- [x] контролер
+- [ ] модель
+- [ ] представлення
+
+#### Q61. Який скрипт може бути використаний для продовження пошуку музики користувачем на різних вебсторінках?
+
+- [ ]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+- [x]
+
+```php
+
+```
+
+#### Q62. Який PHP-скрипт знаходить найраніші та найпізніші дати з масиву?
+
+- [x]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+- [ ]
+
+```php
+
+```
+
+#### Q63. Який результат цього циклу for?
+
+```php
+$kilometers = 1;
+for (;;) {
+ if ($kilometers > 5) break;
+ echo "$kilometers kilometers = ".$kilometers*0.62140. " miles.
";
+ $kilometers++;
+}
+```
+
+- [x]
+
+```
+ kilometers = 0.6214 miles.
+ kilometers = 1.2428 miles.
+ kilometers = 1.8642 miles.
+ kilometers = 2.4856 miles.
+ kilometers = 3.107 miles.
+```
+
+- [ ]
+
+```
+ kilometers = 0.6214 miles.
+ kilometers = 1.2428 miles.
+ kilometers = 1.8642 miles
+ kilometers = 2.4856 miles.
+ kilometers = 3.107 miles.
+ kilometers = 3.7284 miles.
+```
+
+- [ ]
+
+```
+ kilometers = 1.2428 miles.
+ kilometers = 1.8642 miles.
+ kilometers = 2.4856 miles.
+ kilometers = 3.107 miles.
+```
+
+- [ ] ФАТАЛЬНА ПОМИЛКА синтаксична помилка, несподіваний ')', очікується ';' на рядку 2
+
+#### Q64. У PHP 7, який правильний спосіб імпорту кількох класів з простору імен в одному оголошенні?
+
+- [x] use myApp\myNamespace\{ClassA, ClassB, ClassC};
+- [ ] use myApp\myNamespace\ClassA, ClassB, ClassC;
+- [ ] use myApp\myNamespace\[ClassA, ClassB, ClassC];
+- [ ] use myApp\myNamespace\(ClassA, ClassB, ClassC);
+
+#### Q65. Який найповніший список типів даних, що підтримуються PHP?
+
+- [x] string, integer, float, boolean, array, object, NULL, resource
+- [ ] string, integer, boolean, array, object, NULL, resource
+- [ ] string, integer, float, array, object, NULL, resource
+- [ ] string, integer, float, boolean, array, object, NULL
+
+[Довідка](https://www.php.net/manual/uk/language.types.type-system.php)
+
+#### Q66. Яким типом комп'ютерної мови є PHP?
+
+- [x] серверна мова сценаріїв
+- [ ] компільована мова
+- [ ] машинна мова
+- [ ] алгоритмічна мова
+
+[Довідка](https://www.quora.com/Which-programming-language-is-used-to-create-PHP)
+
+#### Q67. Яка суперглобальна змінна містить інформацію про заголовки, шляхи та місця розташування скриптів?
+
+- [x] `$_SERVER`
+- [ ] `$SERVER_VARIABLES`
+- [ ] `$_ENV`
+- [ ] `$GLOBALS`
+
+[Довідка](https://www.php.net/manual/uk/reserved.variables.php)
+
+#### Q68. Опишіть, що станеться, якщо запустити цей код у тестовому середовищі
+
+```php
+$capitals = ['UK' => 'London', 'France' => 'Paris'];
+echo "$capitals['france'] is the capital of France.";
+```
+
+- [ ] Виведе: "Paris is the capital of France."
+- [ ] Виведе: " is the capital of France."
+- [ ] Викличе синтаксичну помилку, оскільки ключі масиву в рядку 1 знаходяться в лапках.
+- [x] Викличе синтаксичну помилку, оскільки ключ масиву в рядку 2 знаходиться в лапках.
+
+**_Також, ключ 'france' має бути з великої літери!_**
+
+#### Q69. DRY (Don't Repeat Yourself) — це принцип розробки програмного забезпечення, спрямований на зменшення повторення шаблонів програмного забезпечення. Який варіант не є способом написання коду з меншими повтореннями у PHP?
+
+- [ ] наслідування
+- [ ] класи
+- [x] простори імен
+- [ ] впровадження залежностей
+
+#### Q70. Який код поверне IP-адресу клієнта?
+
+- [ ] `$HTTP_SERVER_VARS("REMOTE_IP")`
+- [x] `$_SESSION["REMOTE_ADDR"];`
+- [ ] `$_SERVER["HTTP_X_FORWARDED_FOR"]`
+- [x] `getenv("REMOTE_ADDR")`
+
+**_Обидва варіанти 2 і 4 правильні!_**
+
+#### Q71. Ваш сайт повинен дозволяти завантаження великих файлів. Що потрібно зробити?
+
+- [ ] Переконатися, що користувач має відповідні дозволи.
+- [ ] Вести облік розмірів завантажених файлів і записувати їх.
+- [x] Змінити параметр конфігурації `upload_max_filesize`.
+- [ ] Переконатися, що використовується кодування з розбиттям на частини.
+
+#### Q72. Який результат цього скрипту?
+
+```php
+$my_text = 'The quick grey [squirrel].';
+preg_match('#\[(.*?)\]#', $my_text, $match);
+print $match[1]."\n";
+```
+
+- [x] squirrel
+- [ ] The quick grey [squirrel].
+- [ ] [squirrel]
+- [ ] The quick grey squirrel.
+
+#### Q73. Який результат цього скрипту?
+
+`$fruits = ['apple', 'orange', 'pear', 'mango', 'papaya'];`
+`$i = 0;`
+`echo $fruits[$i+=3];`
+
+- [x] mango
+- [ ] apple
+- [ ] синтаксична помилка
+- [ ] pear
+
+#### Q74. Які основні типи помилок у PHP?
+
+- [x] notices, warnings, fatal
+- [ ] runtime, logical, compile
+- [ ] semantic, logical, syntax
+- [ ] warnings, syntax, compile
+
+#### Q75. Який правильний спосіб включити файл gravy.php посеред HTML-коду?
+
+- [ ] ``
+- [ ] ``
+- [x] ``
+- [ ] ``
+
+#### Q76. Які дві функції можуть очистити текст і перевірити формати тексту?
+
+- [ ] `session_start()` і `filter_input()`
+- [x] `filter_var()` і `filter_input()`
+- [ ] `preg_match()` і `strstr()`
+
+#### Q77. Чому не рекомендується робити всі змінні класу публічними?
+
+- [ ] Це робить код тісно пов'язаним.
+- [ ] Атрибут може бути доступний лише класом, який визначає цей член.
+- [x] Не буде контролю над тим, які значення може приймати атрибут. Будь-який зовнішній код зможе змінити його без обмежень.
+- [ ] Тоді атрибут можна буде використовувати лише в межах самого класу, а також у спадкових і батьківських класах.
+
+#### Q78. Ви хочете використовувати символи підстановки під час пошуку записів у базі даних MySQL/MariaDB за допомогою підготовленого виразу PDO. Який код слід використовувати?
+
+- [x] `$statement->bindValue(':name', '%' . $_GET['name'] . '%');`
+- [ ] `$statement->bindValue('%' . $_GET['name'] . '%', ':name');`
+- [ ] `$statement->bindParam(':name', '%' . $_GET['name'] . '%');`
+- [ ] `$statement->bindParam('%' . $_GET['name'] . '%', ':name');`
+
+#### Q79. Створіть асоціативний масив, використовуючи `$array1` як ключі та `$array2` як значення
+
+`$array1 = ['country', 'capital', 'language'];`
+`$array2 = ['France', 'Paris', 'French'];`
+
+- [ ] `$array3 = array_merge($array1, $array2);`
+- [ ] `$array3 = array_union($array1, $array2);`
+- [ ] `$array3 = array_keys($array1, $array2);`
+- [x] `$array3 = array_combine($array1, $array2);`
+
+#### Q80. Припустимо, що `$r` дорівнює 255, а `$g` і `$b` дорівнюють 0. Який правильний код для виведення `"#ff0000"`?
+
+- [ ] `printf('#%2x%2x%2x', 255, 0, 0);`
+- [ ] `printf('#%2X%2X%2X', $r, 0, 0);`
+- [ ] `printf('#%x%x%x', 255, 0, 0);`
+- [x] `printf('#%02x%02x%02x', 255, 0, 0);`
+
+#### Q81. Ви хочете дізнатися, на який день припадає Дванадцята ніч після Різдва 2018 року. Який код слід використовувати?
+
+- [ ] `$xmas = new DateTime('Dec 25, 2018');`
+ `$twelfth_night = $xmas->add(new DateInterval('P12D'));`
+ `echo $twelfth_night->format('l');`
+- [ ] `$twelfth_night = strtotime('December 25, 2018 + 12 days');`
+ `echo date('d', $twelfth_night);`
+
+- [x] `$twelfth_night = strtotime('December 25, 2018 + 12 days');`
+ `echo strftime('%d', $twelfth_night);`
+
+- [ ] `$xmas = new DateTime('Dec 25, 2018');`
+ `$twelfth_night = $xmas->add(strtotime('12 days'));`
+ `echo $twelfth_night->format('D');`
+
+**_1 здається правильним, але питання стосується "дня", а не дня тижня. Дванадцята ніч — це "06" день січня 2019 року._**
+
+#### Q82. Який цикл виведе всі числа від 1 до 10 включно?
+
+- [ ] `$i = 1;`
+ `while ($i < 10) {`
+ `echo $i++ . '
';`
+ `}`
+
+- [ ] `$i = 0;`
+ `while ($i <= 10) {`
+ `echo $i++ . '
';`
+ `}`
+
+- [ ] `while ($i <= 10) {`
+ `echo ++$i . '
';`
+ `}`
+
+- [x] `$i = 0;`
+ `while ($i < 10) {`
+ `echo ++$i . '
';`
+ `}`
+
+#### Q83. Які типи керуючих структур у PHP?
+
+- [x] `break`, `continue`, `do-while`, `exception`, `for`, `foreach`, `if`, `switch`, `throw`, `while`
+- [ ] `values`, `operators`, `expressions`, `keywords`, `comments`
+- [ ] `for`, `foreach`, `if`, `else`, `else if`, `switch`, `tries`, `throws`, `while`
+- [ ] `if-then-else`, `do-while`, `for-each`, `go-to`, `stop-when`
+
+[Довідка](https://www.php.net/manual/uk/language.control-structures.php)
+
+#### Q84. Яку функцію можна використовувати для обробки помилок, щоб зупинити виконання скрипту, і яка є еквівалентом exit()?
+
+- [x] `die`
+- [ ] `return`
+- [ ] `throw`
+- [ ] `break`
+
+#### Q85. Чи виводяться числа у спадному порядку, вертикально, і з пробілами між ними? І який результат?
+
+```php
+$numbers = array(4,6,2,22,11);
+sort($numbers);
+$arrlength = count($numbers);
+for($x = 0; $x < $arrlength; $x++){
+ echo $numbers[$x];
+ echo "
";
+ }
+```
+
+- [ ] Ні, оскільки результатом будуть числа "2461122", які не мають певного порядку.
+- [ ] Так, оскільки
присутній, і sort() сортує у спадному порядку
+- [x] Ні, оскільки функція sort() сортує індексований масив у зростаючому порядку. Таким чином, цей код виведе "2 4 6 11 22" вертикально, але числа розділені пробілами.
+- [ ] Ні, оскільки echo просто виведе числа масиву в порядку, показаному в масиві $numbers, який є зростаючим
+
+#### Q86. Що не є правдою про `toString()` у PHP?
+
+- [ ] Економить багато роботи з використанням методів сетера для доступу до значень об'єктів.
+- [ ] Економить багато роботи з використанням методів гетера для доступу до значень об'єктів.
+- [x] Дозволяє викликати об'єкт і бачити його компоненти як рядок.
+- [ ] Викликається автоматично, коли використовується echo або print.
+
+#### Q87. Що таке генератор і як він використовується в PHP?
+
+- [ ] Генератор — це функція, яка генерує серію випадкових значень для тестування коду.
+- [ ] Генератор — це простий ітератор, здатний генерувати серію результатів. Він має такий самий синтаксис, як функція, за винятком того, що використовує "next" замість "return".
+- [x] Генератор — це простий ітератор, здатний генерувати серію результатів. Він має такий самий синтаксис, як функція, за винятком того, що використовує "yield" замість "return".
+- [ ] Генератор — це функція, здатна генерувати серію результатів. Після завершення серії вона автоматично починається з першого результату.
+
+#### Q88. Який найкращий опис цього скрипту?
+
+```php
+if( isset($user_info['url']) ) {
+ $_SESSION["loggedIn"] = true;
+ $_SESSION["username"] = $myusername;
+ header('Location: ' . $user_info['url']); // Переспрямування до поданої URL-адреси з БД
+} else {
+ header("Location: error.htm");
+}
+```
+
+- [ ] Він перенаправляє всіх користувачів на ту саму сторінку під час входу.
+- [x] Це скрипт входу для користувацького порталу на вебсайті.
+- [ ] Він зберігає користувача в системі під час використання різних браузерів.
+- [ ] Він перенаправляє користувача на сторінку помилки, якщо він вводить неправильну URL-адресу
+
+#### Q89. Який результат цього коду?
+
+`echo 5 % 0.75;`
+
+- [ ] 0
+- [ ] 0.6666666666667
+- [ ] 1
+- [x] fatal error (division by zero)
+
+#### Q90. Чи можна розширити клас, оголошений як final?
+
+- [x] Ні, оскільки оголошення класу або методу як final забороняє перевизначення дочірнього класу або методу.
+- [ ] Спеціалізовані версії вбудованих класів можна розширити, викликавши конструктор батьківського класу.
+- [ ] Так, якщо клас final оголошений як приватний у батьківському класі.
+- [ ] Так, клас, оголошений як final, можна використовувати для оголошення констант.
+
+#### Q91. Як можна перевірити, чи встановлений прапорець?
+
+- [x] Скористатися `!empty($_GET['test'])`
+- [x] Скористатися `isset($_GET['test'])`
+- [ ] Скористатися `$_GET['test'] == ''`
+- [ ] всі інші відповіді
+
+`Насправді обидва варіанти правильні, варіант 3 фактично перевіряє, чи прапорець не встановлений`
+
+#### Q92. Форма для підписки на розсилку подається за допомогою методу POST. Форма містить лише одне поле: текстове поле введення з назвою "email". Як перевірити, чи поле порожнє, і якщо так, вивести "Електронна пошта не може бути порожньою"?
+
+- [x]
+
+```php
+if(empty($_POST['email'])) {
+ echo "Електронна пошта не може бути порожньою";
+}
+```
+
+- [ ]
+
+```php
+if(empty($_GET['email'])) {
+ echo "Електронна пошта не може бути порожньою";
+}
+```
+
+- [ ]
+
+```php
+if(empty($_POST('email'))) {
+ echo "Електронна пошта не може бути порожньою";
+}
+```
+
+- [ ]
+
+```php
+if(isset($email)) {
+ echo "Електронна пошта не може бути порожньою";
+}
+```
+
+#### Q93. Що таке фатальна помилка PHP?
+
+- [ ] Цей тип помилки викликає припинення виконання скрипту, коли вона виникає.
+- [ ] Причини цього типу помилки не виявляються компілятором і призводять до неправильних результатів.
+- [ ] Цей тип помилки викликає помилкові результати або може призвести до припинення програми.
+- [x] Цей тип помилки викликає припинення після відображення списку помилок і номера рядка, де вони виникли.
+
+1. [Довідка1](https://www.geeksforgeeks.org/php-types-of-errors/#:~:text=an%20error%20message.-,Fatal%20Error,-%3A%20It%20is)
+2. [Довідка2](https://www.c-sharpcorner.com/UploadFile/051e29/types-of-error-in-php/#:~:text=2.-,Fatal%20Errors,-Fatal%20errors%20are)
+
+#### Q94. Який скрипт правильно перевіряє IP-адресу?
+
+- [ ]
+
+```php
+$valid = ip2long($ip) !== false;
+```
+
+- [x]
+
+```php
+$ip_address = "164.12.2540.1";
+if(filter_var($ip_address, FILTER_VALIDATE_IP)){
+ echo "$ip_address дійсна IP-адреса";
+} else {
+ echo "$ip_address недійсна IP-адреса";
+}
+```
+
+- [ ]
+
+```php
+$ip_address = "164.12.2540.1";
+if(validate_ip($ip_address)){
+ echo "$ip_address дійсна IP-адреса";
+} else {
+ echo "$ip_address недійсна IP-адреса";
+}
+```
+
+- [ ]
+
+```php
+$ip_address = "164.12.2540.1"
+echo is_valid($ip_address, VALIDATE_IP);
+```
+
+#### Q95. Який результат цього коду?
+
+```php
+ $i = 0;
+ while($i < 6) {
+ if($i++ == 3) break;
+ }
+ echo "цикл зупинено на $i через оператор break";
+```
+
+- [ ] цикл зупинено на 3 через оператор break
+- [x] цикл зупинено на 4 через оператор break
+- [ ] цикл зупинено на 6 через оператор break
+- [ ] цикл зупинено на 2 через оператор break
+
+#### Q96. Після створення об'єктів можна викликати функції-члени, пов'язані з цим об'єктом, наприклад, встановити імена та ціни для трьох об'єктів "Pet". Який ймовірний результат цього фрагмента коду?
+
+```php
+ $dof->setTitle("Spot");
+ $cat->setTitle("Mimi");
+ $horse-?setTitle("Trigger");
+ $dog->setPrice(10);
+ $cat->setPrice(15);
+ $horse->setPrice(7);
+ print_r($cat);
+```
+
+- [ ] Pet Object ( [title]=> Spot[price]=>10)
+- [x] Pet Object ( [title]=> Mimi [price]=>15 )
+- [ ] Pet Object ( [title]=> Mimi[price]=>10 )
+- [ ] Pet Object ( [title]=> Trigger [price]=> 7)
+
+#### Q97. Враховуючи наведений нижче асоціативний масив, який PHP-код визначає, який елемент(и) масиву є яблуком?
+
+```php
+$array = array(
+'fruit1' => 'яблуко',
+'fruit2' => 'апельсин',
+'fruit3' => 'виноград',
+'fruit4' => 'яблуко',
+'fruit5' => 'яблуко');
+```
+
+- [x]
+
+```php
+while ($fruit_name = current($array)) {
+ if ($fruit_name == 'яблуко') {
+ echo key($array).'
';
+ }
+ next($array);
+}
+```
+
+- [ ]
+
+```php
+while ($fruit_name = current($array)) {
+ if ($fruitname == 'яблуко') {
+ echo key($array).'
';
+ }
+ next($array);
+}
+```
+
+- [ ]
+
+```php
+while ($fruit_name = current($array)) {
+ if ($fruit_name == 'яблуко')
+ echo key($array).'
';
+ }
+ next($array);
+}
+```
+
+- [ ]
+
+```php
+while ($fruit_name = current($array)) {
+ if ($fruit_name == 'яблуко') {
+ echo key($array).'
';
+ }
+```
+
+#### Q98. Що виводить цей код?
+
+```php
+class Smurf {
+
+ public $name = "Papa Smurf";
+
+ public function __construct($name) {
+ $this->name = $name;
+ }
+
+ public function set_name($name) {
+ $name = $name;
+ }
+}
+
+$smurf = new Smurf("Smurfette");
+$smurf->set_name("Handy Smurf");
+echo $smurf->name;
+```
+
+- [ ] нічого
+- [ ] Handy Smurf
+- [x] Smurfette
+- [ ] Papa Smurf
+
+#### Q99. У вас є онлайн-форма з полем введення файлу під назвою "image" для завантаження файлів. Припускаючи, що шлях до каталогу завантаження — це $path, який код слід використовувати, щоб переконатися, що файл завантажено з вашої форми в правильне місце?
+
+- [x]
+
+```php
+if ($_FILES['image']['error'] === 0) {
+ move_uploaded_file($_FILES)['image']['temp_name'],
+ $path . $_FILES['image']['name']);
+ )
+```
+
+- [ ]
+
+```php
+if ($_FILES['image']['error'] === false) {
+ move_uploaded_file($_FILES)['image']['temp_name'],
+ $path . $_FILES['image']['name']);
+ )
+```
+
+- [ ]
+
+```php
+if ($_FILES['image']['error'] == 0) {
+ copy($_FILES)['image']['temp_name'],
+ $path . $_FILES['image']['name']);
+ )
+```
+
+- [ ]
+
+```php
+if ($_FILES['image']['error'] == false) {
+ upload_file($_FILES)['image']['temp_name'],
+ $path . $_FILES['image']['name']);
+ )
+```
+
+#### Q100. Яка супер глобальна змінна містить інформацію про заголовки, шляхи та розташування скриптів?
+
+- [ ] `$_GET`
+- [ ] `$GLOBALS`
+- [ ] `$_SESSION`
+- [x] `$_SERVER`
+
+#### Q101. Використовуючи цикл for, як написати PHP-код для зворотного відліку від 10 до 1 у такому порядку?
+
+- [ ]
+
+```php
+
+for ($i=1; $i <= 10; $i++) {
+ echo $i;
+}
+?>
+```
+
+- [ ]
+
+```php
+
+$i = 10;
+while($i>=0) {
+ echo $i;
+ $i--;
+}
+?>
+```
+
+- [ ]
+
+```php
+
+ for($i = 10; $i > 0; $i++) {
+ print "$i
\n";
+ } // end for loop '''
+?>
+```
+
+- [x]
+
+```php
+
+ for($i = 10; $i > 0; $i--) {
+ print "$i
\n";
+ } // end for loop
+?>
+```
+
+#### Q102. Який результат цього коду?
+
+```php
+function knights(){
+return "кущ";
+}
+
+if (knights())
+printf "ти справедливий і чесний";
+else
+printf "NI!";
+```
+
+- [ ] NI!
+- [ ] синтаксична помилка
+- [ ] кущ
+- [x] ти справедливий і чесний
+
+#### Q103. Який скрипт визначає "Україна" як константу та виводить цей код?
+
+**Наша країна — Сполучені Штати Америки**
+**Наша країна має загалом 50 штатів**
+
+- [ ]
+
+```php
+define('country',"Україна");
+define('states',24);
+echo "Наша країна "country"
";
+echo "Наша країна має ".states." області";
+```
+
+- [x]
+
+```php
+define('country',"Україна");
+define('states',50);
+echo "Наша країна ".country."
";
+echo "Наша країна має ".states." області";
+```
+
+- [ ]
+
+```php
+define(country,"Україна");
+define('states',50);
+echo "Наша країна ".country."
";
+echo "Наша країна має ".states." області";
+```
+
+- [ ]
+
+```php
+define('country',"Україна");
+define('states','двадцать чотири');
+$K = 'strval'; echo "Наша {$K(країна)} має {$K(двадцать чотири)} області.";
+```
+
+#### Q104. Що виводить цей код?
+
+```php
+try{
+echo "bodacious";
+throw new Exception();
+} catch (Exception $e) {
+echo "egregious";
+} finally {
+echo "excellent";
+}
+```
+
+- [ ] bodacious
+ excellent
+- [ ] egregious
+ excellent
+- [x] bodacious
+ egregious
+ excellent
+- [ ] bodacious
+ egregious
+
+#### Q105. Передача за посиланням — це спосіб передати змінну у функцію та змінити її всередині функції, щоб ця зміна збереглася при використанні змінної поза функцією. Який код правильно використовує передачу за посиланням для зміни змінної для використання поза функцією?
+
+- [ ] 1 function append($initial){ return $newString = $initial . ' belong to us'; }
+ 2 $initialString = 'All your base are’;
+ 3 $initialString = append($initialString);
+ 4 echo $initialString;
+
+- [ ] 1 function append(&$initial){ return $newString = $initial . ' belong to us'; }
+ 2 $initialString = 'All your base are’;
+ 3 append($initialString);
+ 4 echo $initialString;
+
+- [ ] 1 function append(&$initial){ return $newString = $initial . ' belong to us'; }
+ 2 $initialString = 'All your base are’;
+ 3 $initialString = append($initialString);
+ 4 echo $initialString;
+
+- [x] 1 function append(&$initial){ $initial = $initial . ' belong to us'; }
+ 2 $initialString = 'All your base are’;
+ 3 append($initialString);
+ 4 echo $initialString;
+
+#### Q106. Який результат цього скрипту?
+
+```php
+$believable = 'false';
+$myth = 'Місяць зроблений із зеленого сиру';
+$calc = 10**3+1;
+if ($believable) {
+ echo $myth;
+}
+else {
+ echo $calc;
+}
+```
+
+- [ ] 10000
+- [ ] 31
+- [ ] 1001
+- [x] Місяць зроблений із зеленого сиру
+
+Пояснення: 'false' оцінюється як true, оскільки це рядок, тому умова if виконується.
+
+#### Q107. Яка структура керування PHP використовується всередині циклу, щоб пропустити решту коду поточного циклу та повернутися на початок циклу для наступної ітерації?
+
+- [ ] return
+
+- [ ] else
+
+- [ ] break
+
+- [x] continue