Улучшение подсчета if == x - PullRequest
       31

Улучшение подсчета if == x

0 голосов
/ 15 февраля 2012

Мне было просто интересно, как я могу улучшить этот код?

  $count = count($data['tags']);
  if($count > 3)
  {
    $hashtags = implode(',', array_slice($data['tags'], 0,3));
  }
  elseif($count !== 0)
  {
    $hashtags = implode(',', array_slice($data['tags'], 0,$count));
  }
  else
  {
    $hashtags = 'data';
  }

Кстати, не было ли раздела на стеке потока, чтобы спросить о возможных улучшениях кода? Не могу найти его в ссылках нижнего колонтитула

EDIT:

Под улучшением я в основном думал о сокращениях, а потом искал другой подход к тому же (просто чтобы узнать что-то новое) Спасибо за помощь, ребята!

Ответы [ 4 ]

4 голосов
/ 15 февраля 2012

Сложный вопрос для ответа.

Что вы подразумеваете под «улучшением»?

При условии, что код выполняет то, что вам нужно (и я предполагаю, что он это делает), и его относительно легко читать и поддерживать (я был незнаком с парой функций php, но после их поиска ваш код читается просто отлично для меня), тогда ваш код не нуждается в "улучшении".

3 голосов
/ 15 февраля 2012

Не проверено, так как я не пишу код на PHP, но как насчет этого?

$count = count($data['tags']);
$hashtags = $count == 0 ? 'data' :
   implode(',', array_slice($data['tags'], 0,min(3,$count)));
2 голосов
/ 15 февраля 2012

Вы можете написать то же самое так:

$count = count($data['tags']);
$hashtags = $count !== 0 ? implode(',', array_slice($data['tags'], 0, min($count, 3))) : 'data';

Это меньше строк кода, но на самом деле не более читабельно.

1 голос
/ 15 февраля 2012

Я пытался сделать все это одной строкой, но это не может быть улучшением.Ваш код выглядит хорошо для меня.

$hashtags = $count === 0 ? 'data' : implode(',', array_slice($data['tags'], 0, ($count > 3) ? 3 : $count));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...