switch vs array - PHP Online

Form of PHP Sandbox

Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php in the places where the PHP script should be executed.



Your result can be seen below.

Result of php executing





Full code of switch vs array.php

  1. <?php
  2. const TIMES_TO_REPEAT = 1000000;
  3.  
  4. function getNotificationByFieldNameArray($field)
  5. {
  6.     $test = [
  7.         'Покупатель' => 'Поле заполняется автоматически если помещение добавлено в сделку, и содержит ФИО контакта из сделки.',
  8.         'Менеджер' => 'Поле заполняется автоматически если помещение добавлено в сделку, и содержит ФИО менеджера ответственного в сделке.',
  9.         'Адрес' => 'Поле заполняется автоматически, и содержит адрес помещения по маске (Город , Район, Регион, Улица, Дом. Этаж, Номер помещения)',
  10.         'Цена за метр' => 'Поле заполняется автоматически, цена рассчитывается по формуле Полная стоимость разделенная на Общую площадь. Если заполнено поле Расчетная площадь, то цена за метр считается по формуле Полная стоимость разделенная на Расчетную площадь.',
  11.         'Код планировки' => 'Поле заполняется автоматически, и содержит название изображения планировки которое привязано к помещению. Значение возможно отредактировать.',
  12.         'Расчетная площадь, м2' => 'Если поле содержит значение, то цена за метр квадратный будет считаться по формуле Полная стоимость разделенная на Расчетную площадь.',
  13.         'Студия' => 'Поле может содержать значение Да, Нет либо 0,1. Если поле содержит значение Да либо 1 то для помещения будет применен признак Студия.',
  14.         'Свободная планировка' => 'Поле может содержать значение Да, Нет либо 0,1. Если поле содержит значение Да либо 1 то для помещения будет применен признак Свободная планировка.',
  15.         'Европланировка' => 'Поле может содержать значение Да, Нет либо 0,1. Если поле содержит значение Да либо 1 то для помещения будет применен признак Европланировка.',
  16.         'Цена экспонирования' => 'Поле используется для приложения Profitbase AI. Если помещение меняет свой статус из системных статусов Бронь, Продано на Свободно, поле Полная стоимость будет обновлено, значение будет взято из поля Цена экспонирования.',
  17.     ];
  18.  
  19.     if (isset($test[$field])) {
  20.         return $test[$field];
  21.     }
  22.  
  23.     return null;
  24. }
  25.  
  26. function getNotificationByFieldNameSwitch($field)
  27. {
  28.     switch ($field) {
  29.         case 'Покупатель':
  30.             return 'Поле заполняется автоматически если помещение добавлено в сделку, и содержит ФИО контакта из сделки.';
  31.         case 'Менеджер':
  32.             return 'Поле заполняется автоматически если помещение добавлено в сделку, и содержит ФИО менеджера ответственного в сделке.';
  33.         case 'Адрес':
  34.             return 'Поле заполняется автоматически, и содержит адрес помещения по маске (Город , Район, Регион, Улица, Дом. Этаж, Номер помещения)';
  35.         case 'Цена за метр':
  36.             return 'Поле заполняется автоматически, цена рассчитывается по формуле Полная стоимость разделенная на Общую площадь. Если заполнено поле Расчетная площадь, то цена за метр считается по формуле Полная стоимость разделенная на Расчетную площадь.';
  37.         case 'Код планировки':
  38.             return 'Поле заполняется автоматически, и содержит название изображения планировки которое привязано к помещению. Значение возможно отредактировать.';
  39.         case 'Расчетная площадь, м2':
  40.             return 'Если поле содержит значение, то цена за метр квадратный будет считаться по формуле Полная стоимость разделенная на Расчетную площадь.';
  41.         case 'Студия':
  42.             return 'Поле может содержать значение Да, Нет либо 0,1. Если поле содержит значение Да либо 1 то для помещения будет применен признак Студия.';
  43.         case 'Свободная планировка':
  44.             return 'Поле может содержать значение Да, Нет либо 0,1. Если поле содержит значение Да либо 1 то для помещения будет применен признак Свободная планировка.';
  45.         case 'Европланировка':
  46.             return 'Поле может содержать значение Да, Нет либо 0,1. Если поле содержит значение Да либо 1 то для помещения будет применен признак Европланировка.';
  47.         case 'Цена экспонирования':
  48.             return 'Поле используется для приложения Profitbase AI. Если помещение меняет свой статус из системных статусов Бронь, Продано на Свободно, поле Полная стоимость будет обновлено, значение будет взято из поля Цена экспонирования.';
  49.         default:
  50.             return null;
  51.     }
  52. }
  53.  
  54. $startTimeSwitch = microtime(true);
  55. for ($i = 0; $i < TIMES_TO_REPEAT; $i++) {
  56.     $field = getNotificationByFieldNameSwitch('Цена экспонирования');
  57. }
  58. $endTimeSwitch = microtime(true);
  59.  
  60. $startTimeArray = microtime(true);
  61. for ($i = 0; $i < TIMES_TO_REPEAT; $i++) {
  62.     $field = getNotificationByFieldNameArray('Цена экспонирования');
  63. }
  64. $endTimeArray = microtime(true);
  65.  
  66. echo(sprintf('switch = %s sec%s', $endTimeSwitch - $startTimeSwitch, PHP_EOL));
  67. echo(sprintf('array = %s sec', $endTimeArray - $startTimeArray));
File Description
  • switch vs array
  • PHP Code
  • 21 Dec-2022
  • 7.23 Kb
You can Share it: