За последние 24 часа нас посетили 23032 программиста и 1260 роботов. Сейчас ищут 688 программистов ...

Чем заменить switch case

Тема в разделе "PHP для новичков", создана пользователем Пэлт, 19 июн 2020.

  1. Пэлт

    Пэлт Новичок

    С нами с:
    1 апр 2020
    Сообщения:
    103
    Симпатии:
    0
    Здравствуйте, слышал, что switch case лучше не использовать, тогда чем можно заменить это?

    Можете дать один пример точно такой же, но с другим способ?

    switch($ling['aw']){
    case 0: $zex= '0';
    break;

    case 1:$zex= '15';
    break;
    }
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    switch норм. оптимизируется (по крайней мере в норм. :) языках так), а не входит он в «обязательный набор», т.к. типа является избыточным (можно и так оптимизировать, хотя без него может получиться корявее).

    Ассоциативный массив используйте с пред. проверкой входящего индекса (ключа) на попадание в диапазон имеющихся ключей (isset, array_key_exists).
    --- Добавлено ---
    P.S. В пыхе у свича есть одна особенность: в нем используется «нестрогое» сравнение, т.е. без учета типа (==, а не ===).
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    PHP:
    1. $zex = fn( int $n ): int => [ 0, 15 ][$n] ?? 0;
    2.  
    3. echo $zex(1);
    --- Добавлено ---
    В память не будет загружен массив, или ошибаюсь...