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 +
+ Email: + +
+``` + +- [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 + +``` + +- [ ] ­ + +```php +=0) { + echo $i; + $i--; +} +?> +``` + +- [ ] ­ + +```php + 0; $i++) { + print "$i
\n"; + } // end for loop ''' +?> +``` + +- [x] ­ + +```php + 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