Есть один и тот же функционал, реализованный разными инструментами.
Какой вариант, на ваш взгляд проще читать?
На выходе один из вариантов заголовка, зависящий от входных параметров.
На входе 3 параметра:
if($type_deal == 2) { // Продажа
if($area > 150) { // Офисный блок
$title = "Продажа офисного блока ";
} else { // Офис
$title = "Продажа офиса ";
}
} else { // Аренда
if($area > 150) { // Офисный блок
switch($ssid % 3){
case 0:
$title = "Аренда офисного блока ";
break;
case 1:
$title = "Офисный блок в аренду ";
break;
case 2:
$title = 'Сдается офисный блок ';
break;
}
} else { // Офис
switch($ssid % 3){
case 0:
$title = "Аренда офиса ";
break;
case 1:
$title = "Офис в аренду ";
break;
case 2:
$title = 'Сдается офис ';
break;
}
}
}
// type area ssid
// {0-1}_{0-1}_{0-2}
$title_type =
($type_deal == 2 ? '1' : '0')
.($area > 150 ? '1' : '0')
.($ssid % 3);
switch($title_type){
// Аренда офиса
case 000:
$title = "Аренда офиса ";
break;
case 001:
$title = "Офис в аренду ";
break;
case 002:
$title = 'Сдается офис ';
break;
// Аренда офисного блока
case 010:
$title = "Аренда офисного блока ";
break;
case 011:
$title = "Офисный блок в аренду ";
break;
case 012:
$title = 'Сдается офисный блок ';
break;
// Продажа офиса
case 100:
case 101:
case 102:
$title = "Продажа офиса ";
break;
// Продажа офисного блока
case 110:
case 111:
case 112:
$title = "Продажа офисного блока ";
break;
default:
$title = false;
}
$title_type = $ssid % 3;
return $type_deal == 2
// Продажа
? ($area > 150
// Офисного блока
? "Продажа офисного блока "
// Офиса
: "Продажа офиса ")
// Аренда
: ($area > 150
// Офисный блок
? ($title_type == 2
// Три вариант заголовка
? "Аренда офисного блока "
: ($title_type == 1
? "Офисный блок в аренду "
: 'Сдается офисный блок '))
// Офис
: ($title_type == 2
// Три варианта заголовка
? "Аренда офиса "
: ($title_type == 1
? "Офис в аренду "
: 'Сдается офис ')));
Результаты тестирования на большой выборке:
Я бы слегка модифицировал 2й вариант, и получилось бы очень красиво, форматирование, все дела, шо хошь. Единственный минус - весь функционал, это возвращение какого-либо значения. В случаях с кейсами, или ифами можно дополнительно хендлить события еще, но если задача стоит только в выводе, я бы предпочел это:
// type area ssid
// {0-1}_{0-1}_{0-2}
$title_type =
($type_deal == 2 ? '1' : '0')
.($area > 150 ? '1' : '0')
.($ssid % 3);
$titles = Array(
001 => 'Офис в аренду ',
002 => 'Офис на продажу',
... => '...',
1337 => 'куплю гараж'
);
$title = $titles[$title_type];
Емнип, самый быстрый вывод, по индексированному массиву.
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как вывести информация из столбца в mysqlЕсть столбик test, в котором присутствует подобное содержание id|15||id2|20||id3|25
Чтобы получить контроль над содержанием подключенного к странице iframe был создан файл redirectphp с кодом: