можно ли писать на троичном?

#php #ternary

#php #троичный

Вопрос:

 //if more than one attribute is being added
if (is_array($data[0])) 
{
    $datas = $data;    
}
//if only one attribute is being added
else
{
    $datas[0] = $data;
}
  

Мне было интересно, можно ли написать приведенный выше код на троичном языке в одной строке

Комментарии:

1. Вы могли бы написать это как одну строку без троичного. Просто удалите все символы новой строки. PHP в любом случае вообще не требует их.

2. @Gherman это очень плохая рекомендация

3. @WesleySmith Это вообще не рекомендация. Я думаю, что вопрос не очень практичен для начала, но больше о языке gramar и его возможностях. Если вы подумаете об этом, большинство минификаторов JavaScript делают именно это, помимо многих других вещей.

4. Если вопрос прямо задает вопрос, возможно ли что-то, что вы считаете плохим, это не создает оснований для его закрытия. Какие правила SO, по вашему мнению, здесь нарушены?

Ответ №1:

Технически, да:

 is_array($data[0]) ? $datas = $data : $datas[0] = $data;
  

Но не делайте этого.

Троичные операторы предназначены для выражения операции:

 something = condition ? value : other-value
  

Используя их для:

 condition ? operation : other-operation
  

… в лучшем случае сбивает с толку.

Если у вас возникла if/else ситуация, используйте if/else инструкции.

Ответ №2:

 $datas = is_array($data[0])? $data : [$data];
  

Комментарии:

1. is_array($data[0])