[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Тернарный оператор, проверка трех чисел
VeRTak
Подскажите как сделать тернарным оператор проверку трех чисел

если два числа тут все просто, а если числа 3 то как?
Игорь_Vasinsky
тернарный оператор - это сокращённая запись простого условия ветвления if else

если ты начнёшь заворачивать в тернарную операцию больше 2х ветвлений - код чтанет до ужаса нечетебелен.

для твоего варианта вообще можно switch case использовать

$digit = 2;

switch($digit){
case 1 : $word = 'один'; break;
case 2 : $word = 'два'; break;
case 3 : $word = 'три'; break;
default : $word = 'ХЗ батенька'; break;
}
echo $word;


иначе

$digit = 2;

echo ($digit == 1) ? 'один' : (($digit == 2) ? 'два' : (($digit == 3) ? 'три' : 'ХЗ батенька'));


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
VeRTak
Игорь_Vasinsky

Спасибо)
volter9
Wind
А почему нельзя просто так?:
$choices = ['один', 'два', 'три'];
$choice = 1;

echo isset($choices[$choice - 1]) ? $choices[$choice - 1] : 'ХЗ батенька';


_____________
Мой блог
Игорь_Vasinsky
volter9
если бы не первый пост - я бы вообще не понял о чем речь по твоему коду laugh.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
VeRTak
volter9

Мне тоже не особо понятно что произойдет, в мой ситуации берется число из базы, 0,1,2, и уже от этого числа подставляется нужный класс стилей
volter9
Wind
Объясни пожалуйста что ты хочешь добится и что у тебя есть. Мне кажется, что ты не в ту сторону копаешь.

_____________
Мой блог
VeRTak
volter9

Возможно smile.gif Есть вывод всех пользователей, с базы вывожу их, и делаю подцветку логина, т.е если пользователь является админом то один класс с цветом, если модератор другой класс, ну а если обычный юзер, то вообще без класса
J1upuk
Самый оптимальный вариант - switch case, как мне кажется.
volter9
Wind
Ну вот, легче и компактнее:
$classes = ['admin', 'mod', 'advisor'];
$role = $user['role'];

echo isset($classes[$role]) ? $classes[$role] : '';

Где $user['role'] являеться индексом для класса. Также можно добавить ключи к массиву $classes для соответствия с данными (ключами) в БД.

_____________
Мой блог
VeRTak
volter9

Спасибо, действительно удобнее и компактнее, сделал у себя, все работает, не знал я о таком smile.gif Сейчас разобрался, как все работает, в дальнейшем буду использовать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.