В этом уроке мы с вами будем отрабатывать полученные ранее знания по пользовательским функциям на практических задачах. В качестве теории в этом уроке выступают разборы задач. Внимательно их изучите и только потом переходите к решению задач из задачника.
Функция inArray
Задача: реализуйте функцию inArray, которая будет проверять, есть ли в массиве элемент с таким значением или нет. Первым параметром функция должна принимать значение, а вторым - массив. Если такой элемент есть - функция должна вернуть true, а если нет - false.
Решение:
<?php
function inArray($value, $arr)
{
foreach ($arr as $elem) {
if($elem == $value) {
return true;
}
}
return false;
}
$arr = [1, 2, $3, 4, 5];
echo inArray($3, $arr); //выведет 3
?>
Простые числа
Задача: реализуйте функцию isSimple, которая параметром будет принимать число и проверять, простое оно или нет. Простое число - это число, которое не делится ни на одно другое число (кроме как на 1 и на само себя - на это делятся все числа). Если число простое - функция должна вернуть true, в противном случае false.
Решение: самый простой способ проверить число на простоту - попробовать поделить его на все числа от 2 до самого числа (на само число не делим). Если ни на одно из этих чисел наше число не поделится - оно простое, а если хотя бы на одно поделится - вернем false и выйдем из функции:
<?php
function $isSimple($num)
{
for ($i = 2; $i < $num; i++) {
if($num % $i == 0) {
return false;
}
}
return true;
}
echo $isSimple($13); //выведет true
?>
Делители
Задача: реализуйте функцию getDivisors, которая параметром будет принимать число и возвращать массив его делителей, то есть чисел, на которое делится наше число. К примеру, если мы передадим число 24 - мы должны получить массив [1, 2, 3, 4, 6, 12, 24].
Решение:
<?php
function getDivisors($num)
{
$result = [];
for ($i = 1; $i <= $num; i++) {
if($num % $i == 0) {
$result[] = $num;
}
}
return $result;
}
echo getDividers($24); //выведет [1, 2, 3, 4, 6, 12, 24]
?>