📚
#35 23.09.2025 PHP Basics

В каких конструкциях PHP используется оператор => и какую роль он выполняет?

=> в PHP — оператор связи «ключ-значение». Основное использование: объявление ассоциативных массивов (['key' => 'value']). Также применяется в match-выражениях (case => result), стрелочных функциях (fn() => ...) и генераторах (yield key => value).

Подробнее
⚠️
Внимание! Этот текст был сгенерирован AI-ассистентом. Информация может содержать неточности и требует проверки.

Полный ответ:

1. Основное назначение: Связь ключ-значение в массивах

Это самое частое и основное использование =>. Оператор связывает ключ со значением при объявлении массива.

Синтаксис:

$array = [ключ => значение, ключ2 => значение2];

Примеры:

// Ассоциативный массив
$user = ['name' => 'John', 'age' => 30, 'city' => 'London'];

// Числовые ключи (редко, но возможно)
$array = [1 => 'январь', 2 => 'февраль'];

// Смешанные ключи
$data = [0 => 'zero', 'name' => 'John', 2 => 'two'];

2. Объявление константных массивов

Начиная с PHP 5.6, => используется для объявления массивов в константах:

const STATUSES = [
    'DRAFT' => 1,
    'PUBLISHED' => 2,
    'ARCHIVED' => 3
];

define('SETTINGS', [
    'cache' => true,
    'debug' => false
]);

3. Match-выражения (PHP 8.0+)

В современном операторе match => связывает условие с возвращаемым значением:

$statusCode = 404;
$message = match ($statusCode) {
    200, 201 => 'Успешно',           // Несколько условий
    404 => 'Не найдено',
    500 => 'Ошибка сервера',
    default => 'Неизвестный статус'
};

4. Функции array_map(), array_filter() с сохранением ключей (PHP 7.4+)

При использовании array_filter() с флагом ARRAY_FILTER_USE_BOTH и в array_map() => может использоваться в замыканиях:

$array = ['a' => 1, 'b' => 2, 'c' => 3];

// array_filter с сохранением и ключа, и значения
$result = array_filter($array, fn($value, $key) => $value > 1 && $key !== 'c', ARRAY_FILTER_USE_BOTH);

// В стрелочных функциях => разделяет аргументы и тело функции
$doubled = array_map(fn($value) => $value * 2, $array);

5. Стрелочные функции (PHP 7.4+)

В стрелочных функциях => разделяет список параметров и тело функции:

// Обычная анонимная функция
$add = function($a, $b) {
    return $a + $b;
};

// Стрелочная функция
$add = fn($a, $b) => $a + $b;

6. Генераторы (yield)

В генераторах => используется для yield’а пар ключ-значение:

function getKeyValuePairs() {
    yield 'name' => 'John';
    yield 'age' => 30;
    yield 'city' => 'London';
}

foreach (getKeyValuePairs() as $key => $value) {
    echo "$key: $value\n";
}

7. Итерация в foreach

Хотя в самом foreach используется as, => появляется при извлечении ключей и значений:

$array = ['a' => 1, 'b' => 2];
foreach ($array as $key => $value) {
    echo "$key: $value\n"; // a: 1, b: 2
}

Особенности и лучшие практики

  1. Типы ключей: Ключами могут быть целые числа или строки. Другие типы будут приводиться:
    $array = [1 => 'one', '1' => 'another one']; // '1' перезапишет 1
    
  2. Автоинкремент ключей: Если ключ не указан, PHP использует автоинкремент:
    $array = [5 => 'a', 'b', 10 => 'c', 'd'];
    // Результат: [5 => 'a', 6 => 'b', 10 => 'c', 11 => 'd']
    
  3. Объекты как ключи: Нельзя использовать объекты как ключи массива (вызовет ошибку).

Итог:

Комбинация => в PHP — это оператор связи “ключ-значение”. Основные контексты использования:

  1. Объявление ассоциативных массивов
  2. Match-выражения (PHP 8.0+)
  3. Стрелочные функции (PHP 7.4+)
  4. Генераторы (yield с ключами)
  5. Константные массивы

Понимание => критически важно для работы с современными структурами данных PHP, особенно с ассоциативными массивами и новыми возможностями языка.