Главные темы ► programming ► php ► base_php ► switch и match
Теги: base_php

switch и match

switch и match

    switch
    switch ($i) { case 0: echo "i равно 0"; case 1: echo "i равно 1"; case 2: echo "i равно 2"; }

    Если $i равно 0, то PHP исполнит все операторы echo! Если $i равно 1, PHP исполнит два последних оператора echo.
    Список операторов для исполнения в секции case также может быть пустым, что просто передаёт управление списку операторов в следующей секции case
    Специальный вид конструкции case - default. Сюда управление попадает тогда, когда не сработал ни один из других операторов case. Например:

    default: echo "i не равно 0, 1 или 2";

    Для более сложных сравнений в качестве значения switch может использоваться значение true.

    switch (true) { case $start - $offset === 1: print "A"; break; case $start - $offset === 2: print "B"; break; ..... ...

    Источник: https://www.php.net/manual/ru/control-structures.switch.php

    match

    match похоже на оператор switch, где исходное значение сравнивается с другими и в случае совпадения возвращается соотсветствующий результат
    В отличие от switch, в match используется строгое сравнение (===)
    В отличии от switch, match исполняется только одна, первая подошедшая, ветвь кода

    $email = "test@test.ru"; $result = match($email){ 'egor@test.ru' => "Привет Егор", 'ivan@test.ru' => "Привет Иван", 'test@test.ru' => "Привет test", }; var_dump($result);

    Может использоваться множественное условие, функция, операторы сравнения или условие по умолчанию:

    $a = 2; $b = 3; $c = 4; $x = 1; $result = match($x) { // Множественное условие: $a, $b, $c => 1, // Аналогично трём одиночным: $a => 2, $b => 3, $c => 4, default => 5, }; var_dump($result);
    Источники
    Последнее изменение: November 6, 2024 00:33


    Редактировать


    test

    2025-12-31 23:09:00 Редактировать

    test

    2025-12-31 23:10:00 Редактировать

    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ
    Loading…
    Loading the web debug toolbar…
    Attempt #