
- •Лекція 8
- •І. Функції в php
- •Аргументи функцій. У кожної функції може бути список аргументів. За допомогою цих аргументів у функцію передається різна інформація. Кожен аргумент є змінною або константою.
- •Змінні функції. Php підтримує концепцію змінних функцій. Це означає, що якщо ім’я змінної закінчується круглими дужками, то php шукає функцію з таким же ім’ям і намагається її виконати, наприклад:
- •Функція array_chunk розбиває масив на декілька підмасивів заданої довжини. Синтаксис її такий:
- •Сума елементів масиву. Функція, що обчислює суму всіх елементів масиву називається array_sum() і як параметр їй передається тільки ім’я масиву, суму значень елементів якого потрібно обчислити.
Функція array_chunk розбиває масив на декілька підмасивів заданої довжини. Синтаксис її такий:
array_chunk ( масив, розмір [, зберігати_ключі]);
У результаті роботи array_chunk() повертає багатовимірний масив, елементами якого є отримані підмасиви. Якщо задати параметр зберігати ключі як true, то під час розбиття будуть збережені ключі початкового масиву. В інакшому випадку ключі елементів замінюються числовими індексами, які починаються з нуля.
Сума елементів масиву. Функція, що обчислює суму всіх елементів масиву називається array_sum() і як параметр їй передається тільки ім’я масиву, суму значень елементів якого потрібно обчислити.
Як приклад використання цієї функції наведемо рішення складнішої задачі, ніж просто обчислення суми елементів. Цей приклад також ілюструє застосування функції array_slice() згадуваної раніше.
Нехай даний масив натуральних чисел. Потрібно знайти в ньому таке число, що сума елементів праворуч від нього рівна сумі елементів зліва:
<?php
$arr = array(2, 1, 3, 4, 5, 6, 4);
/* перебираємо кожен елемент масиву $arr.Усередині циклу поточний ключ масиву міститься в змінній $k, поточне значення – в змінній $val */
foreach ($arr as $k => $val) {
$p = $k + 1;
/* синтаксис array array_slice (array array, int offset [, int length]) array_slice виділяє підмасив довжини length в масиві array починаючи з елементу offset */
$out_next = array_slice($arr, $p);
/* отримуємо масив елементів, що йдуть після поточного */
$out_prev = array_slice($arr, 0 $k);
/* отримуємо масив елементів, що йдуть перед поточним функція mixed array_sum (array array) підраховує суму елементів масиву array */
$next_sum = array_sum($out_next);
$prev_sum = array_sum($out_prev);
/* якщо сума елементів до поточного рівна сумі елементів після, то виводиться значення поточного елементу */
if ($next_sum == $prev_sum) echo "value:$val";
/* можна подивитися, що є розглянуті масиви на кожному кроці
// print_r($out_next); echo "<br>";
// print_r($out_prev);
// echo "$next_sum $prev_sum<br>";
echo "<hr>";
}
?>