В этом уроке мы с вами будем отрабатывать полученные ранее знания по пользовательским функциям на практических задачах.
Пусть у нас дан какой-то произвольный массив с числами, например, такой:
<?php
$arr = [1, 2, 3, 4];
?>
Пусть теперь перед нами, к примеру, стоит задача найти сумму квадратов элементов этого массива. Пока не будем использовать пользовательские функции, чтобы показать, какие проблемы возникнут в этом случае.
Давайте напишем код, реализующий нашу задачу:
<?php
$arr = [1, 2, 3, 4];
// Код, находящий сумму:
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem * $elem;
}
echo $sum;
?>
Пусть теперь у нас даны два массива:
<?php
$arr1 = [1, 2, 3, 4];
$arr2 = [5, 6, 7, 8];
?>
Пусть теперь перед нами стоит задача найти сумму квадратов элементов и одного массива, и второго. В этом случае нам придется код, находящий сумму, повторить два раза: для первого и для второго массива, вот так:
<?php
$arr1 = [1, 2, 3, 4];
$arr2 = [5, 6, 7, 8];
// Код, находящий сумму для первого массива:
$sum1 = 0;
foreach ($arr1 as $elem) {
$sum1 += $elem;
}
// Код, находящий сумму для второго массива:
$sum2 = 0;
foreach ($arr2 as $elem) {
$sum2 += $elem;
}
// Код, выводящий найденные суммы:
echo $sum1;
echo $sum2;
?>
Как мы видим, у нас возникает дублирование кода. Давайте избавимся от него, создав свою функцию, находящую сумму элементов переданного параметром массива.
Вот код этой функции:
<?php
function getSquareSum($arr) {
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
return $sum;
}
?>
Используем теперь нашу функцию для нахождения суммы одного и второго массива:
<?php
function getSquareSum($arr) {
$sum = 0;
foreach ($arr as $elem) {
$sum += $elem;
}
return $sum;
}
$arr1 = [1, 2, 3, 4];
$arr2 = [5, 6, 7, 8];
echo getSquareSum($arr1);
echo getSquareSum($arr2);
?>
Напишите функцию, которая будет находить сумму квадратных корней элементов массива.
Реализуйте функцию getDivisors
, которая
параметром будет принимать число и возвращать
массив его делителей, то есть целых чисел,
на которое делится наше число.
Сделайте функцию delElem
, которая
параметрами будет принимать значение и массив
и удалять из массива все элементы с таким
значением.