Некоторые товарищи безосновательно полагают, что match быстрее switch. А проверим тестом, кто быстрее. Смысл программы следующий - много раз запустим селектор выбора и посчитаем разницу во времени. Для удобства воспользуемся возможностью передавать функцию с помощью лямбд.
<?php function testTime($counter, $fn){ $time_start = microtime(true); for ($i=0;$i<$counter;$i++){ $data = ['apple', 'bar', 'cake'][random_int(0, 2)]; $res = $fn($data); }; $time_end = microtime(true); return $time_end - $time_start; } $test1 = function($food) { return match($food){ 'apple'=> 'A', 'bar'=>'B', 'cake'=>'C' }; }; $test2 = function($food) { switch ($food){ case 'apple' : return 'A' ; case 'bar' : return 'B' ; case 'cake' : return 'C'; }; }; echo testTime( 1000000, $test1 ) . PHP_EOL; echo testTime( 1000000, $test2 ) . PHP_EOL;Теперь запустим код 0.96287798881531 0.62920999526978 Как видим, конструкция со switch на 33% быстрее match. Занавес ) Теги документа