03. Массивы и функции

Что такое массив

Массив — это структура данных, которая хранит несколько значений в одной переменной. Вместо того чтобы создавать десятки переменных, можно объединить всё в один список.
Представь, что массив — это коробка с ячейками, где в каждой хранится значение. Достать элемент можно по его номеру.

Пример обычного массива


<?php
$fruits = ['яблоко', 'банан', 'груша'];
echo $fruits[0]; // выведет 'яблоко'
?>

Перебор массива

Чтобы пройтись по всем элементам массива, используют цикл foreach.

<?php
$fruits = ['яблоко', 'банан', 'груша'];
foreach ($fruits as $fruit) {
  echo $fruit.'<br>';
}
?>

Добавление и удаление элементов


$numbers = [1, 2, 3];
$numbers[] = 4; // добавление
array_pop($numbers); // удаление последнего элемента

Ассоциативные массивы

Обычный массив использует числа как ключи (0, 1, 2...). Ассоциативный — позволяет использовать текстовые ключи, как в словаре.

<?php
$user = [
  'name' => 'Анна',
  'age' => 25,
  'city' => 'Москва'
];

echo $user['name']; // выведет 'Анна' ?>

Перебор ассоциативного массива


foreach ($user as $key => $value) {
  echo $key . ': ' . $value . '<br>';
}
Результат:

name: Анна
age: 25
city: Москва

Полезные функции для массивов

  • count($arr) — количество элементов
  • in_array($val, $arr) — проверяет, есть ли значение
  • implode(', ', $arr) — объединяет элементы в строку
  • array_keys($arr) — возвращает список ключей
  • array_values($arr) — возвращает только значения

$colors = ['красный', 'синий', 'зелёный'];
echo implode(', ', $colors); // красный, синий, зелёный

Вложенные массивы

Массивы могут содержать другие массивы. Это удобно, если нужно хранить таблицы или списки объектов.

$users = [
  ['name' => 'Иван', 'age' => 30],
  ['name' => 'Анна', 'age' => 25],
  ['name' => 'Павел', 'age' => 40]
];

foreach ($users as $user) { echo $user['name'].' — '.$user['age'].' лет<br>'; }

Функции в PHP

Функция — это блок кода, который можно вызывать многократно. Это как мини-программа внутри программы.

function greet($name) {
  return 'Привет, '.$name.'!';
}

echo greet('Алекс'); // Привет, Алекс!

Аргументы и возвращаемое значение

Функция может принимать аргументы и возвращать результат с помощью return.

function sum($a, $b) {
  return $a + $b;
}

$result = sum(5, 7); echo 'Результат: '.$result;

Вывод:

Результат: 12

Функции без аргументов


function hello() {
  echo 'Добро пожаловать на сайт!';
}

hello();

Передача массива в функцию


function showList($arr) {
  foreach ($arr as $item) {
    echo '- '.$item.'<br>';
  }
}

$tasks = ['Учить PHP', 'Повторить HTML', 'Создать проект']; showList($tasks);

Зачем нужны функции

  • Чтобы не дублировать код.
  • Чтобы разбивать программу на логические части.
  • Чтобы сделать код читаемым и понятным.
Функции — это кирпичики, из которых строится любая программа.

Область видимости переменных

Переменные, объявленные внутри функции, недоступны снаружи. Это называется областью видимости (scope).

$a = 10;

function test() { $a = 5; echo $a; // 5 }

test(); echo $a; // 10

Если нужно использовать внешнюю переменную, можно указать global:


$a = 10;
function addFive() {
  global $a;
  $a += 5;
}
addFive();
echo $a; // 15

Типичные ошибки новичков

  • Используют переменные до их объявления.
  • Путают круглые и квадратные скобки в массивах.
  • Забывают return в функциях — и получают пустой результат.
  • Переопределяют функцию с тем же именем (ошибка Fatal error).

Практика

  • Создай массив с 5 любимыми фильмами и выведи их циклом foreach.
  • Создай функцию, которая принимает массив чисел и возвращает их среднее значение.
  • Напиши функцию, которая принимает имя и возраст и возвращает строку вроде: «Анна, 25 лет».

Итоги урока

Теперь ты знаешь:
  • Что такое массивы и как их использовать.
  • Чем отличаются обычные и ассоциативные массивы.
  • Как писать функции и передавать в них параметры.
  • Как избегать типичных ошибок при работе с массивами и функциями.