Примеры на создание функций в PHP

В этом уроке мы с вами будем отрабатывать полученные ранее знания по пользовательским функциям на практических задачах.

Пусть у нас дан какой-то произвольный массив с числами, например, такой:

<?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, которая параметрами будет принимать значение и массив и удалять из массива все элементы с таким значением.