Жонглювання типами також називають приведенням типів. Жонглювання типами - це коли два значення різних типів зводяться до одного типу, щоб виконати операцію.
$baskets = 5 // int
$apples_per_basket = "3" // string
$baskets * $apples_per_basket
# => 15
Це може відбуватися неявно (див. приклад вище) або явно, за допомогою приведення типів у стилі C:
$apples_per_basket = "3" // string
$my_number = (int) $apples_per_basket // cast string to int
# => 3 // int
Для ручного приведення типів дозволені такі типи: bool, int, float, string, array, object.
Найчастіше приведення типів використовують, щоб перетворити ціле число (int) на число з плаваючою комою (float) або навпаки.
Наш друг Kojo дуже любить числа. У нього є невеликий сайт, де можна гратися з числами. Kojo не дуже добре програмує, тож він попросив нас про допомогу.
Ми створимо два допоміжні методи для нових числових ігор на сайті Kojo, а також третій, щоб перевіряти деякі введені користувачем дані.
Одна з ігор на сайті Kojo має вигляд грального автомата, який показує дві групи коліс із цифрами. Кожна група цифр представляє число. Для ігрової механіки Kojo потрібно знати суму цих двох чисел.
Напишіть метод sumUp, який приймає два масиви як параметри.
Кожен масив складається з однієї або більше цифр від 0 до 9.
Функція повинна інтерпретувати кожен масив як число та повернути суму цих двох чисел.
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->sumUp([1, 2, 3], [0, 7]);
//=> 130
// [1, 2, 3] represents 123 and [0, 7] represents 7.
// 123 + 7 = 130
На сайті є ще одна гра, невелика вікторина під назвою «Щасливі числа». Користувач може ввести число й побачити, чи належить воно до якоїсь таємної послідовності або закономірності. Послідовність або закономірність «щасливих чисел» змінюється щомісяця, і кожен користувач має лише обмежену кількість спроб, щоб її вгадати.
Щасливими числами цього місяця мають бути числа-паліндроми. Числа-паліндроми не змінюються, якщо записати їхні цифри у зворотному порядку.
Реалізуйте нову функцію isPalindrome, яка приймає ціле число як параметр.
Функція повинна повернути true, якщо число є паліндромом, і false в іншому разі.
Вхідне число завжди буде додатним цілим числом.
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->isPalindrome(1441);
//=> true
$lucky_numbers->isPalindrome(123);
//=> false
У різних місцях сайту є поля введення, де користувачі можуть вводити числа й натискати кнопку, щоб запустити якусь дію. Kojo хоче покращити користувацький досвід свого сайту. Він хоче показувати повідомлення про помилку, якщо користувач натискає кнопку, а поле містить некоректне введене значення.
Ось трохи більше інформації про те, як формується значення поля введення.
Напишіть функцію validate, яка приймає введені користувачем дані як параметр.
Якщо користувач не надав жодних вхідних даних, validate має повернути 'Required field'.
Якщо введене значення не є додатним цілим числом, що не дорівнює нулю (згідно з правилами перетворення типів PHP), слід повернути 'Must be a whole number larger than 0'.
У всіх інших випадках можна вважати, що введені дані коректні, і тоді поверненим значенням має бути порожній рядок тексту.
<?php
$lucky_numbers = new LuckyNumbers()
$lucky_numbers->validate('123');
// => ''
$lucky_numbers->validate('');
// => 'Required field'
$lucky_numbers->validate('abc');
// => 'Must be a whole number larger than 0'
Зареєструйтеся на Exercism, щоб вивчати й опановувати PHP, а також 11 концепцій122 вправи та справжнє наставництво від людей, і все це безкоштовно.