[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Можно ли проще и/или короче?
Страницы: 1, 2
twin
ApuktaChehov
По твоей логике нужно вместо
return empty($var);
нужно писать
return empty($var) ? true : false;
? Странно... Чем это читабельнее?
Кстати, интерпретатору совсем не все равно.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
ApuktaChehov
twin
Мой пример я писал ровно для
return $bool1 == $bool2;

Так что не передергивай. К тому же ты меня давно знаешь, неужели ты думаешь, что я стал бы писать return empty($var) ? true : false; ?

Хотя может это я ущербный? Мне одному кажется, что:
 return (!empty($some) && check($some) == 2015? true : false);

менее понято чем:
if(!empty($some))
return check($some) == 2015? true : false;
else
return
false;

или даже так:
if (!empty($some) && check($some) == 2015)
return true;
else
return
false;


_____________
twin
Я просто разницы не вижу... Ну максимум в скобки взять.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
ApuktaChehov
поправил предыдущий свой пост.

_____________
ApuktaChehov
Не, ну одно дело когда
return $bool1 == $bool2;

, что еще читается нормально, а другое:
$pagination = $pages > 1 ? limited_range($page, clamp($pages, 1, 9), 1, $pages) : array();

Лично у меня нет никакого желания разбираться в том, что тут делается.

_____________
stump
Цитата (ApuktaChehov @ 29.04.2015 - 12:30)
return ($bool1 == $bool2)?  true : false;

Индус?

_____________
Трус не играет в хокей
chee
ApuktaChehov, я бы тот код написал так

if(!empty($some)) {
return check($some) == 2015;
} else {
return false;
}


а это
$pagination = $pages > 1 ? limited_range($page, clamp($pages, 1, 9), 1, $pages) : array();

так

$pagination = array();

if ($pages > 1) {
$pagination = limited_range($page, clamp($pages, 1, 9), 1, $pages);
}


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 29.04.2015 - 11:59)
ApuktaChehov, я бы тот код написал так

if(!empty($some)) {
return check($some) == 2015;
} else {
return false;
}

else тут как бы тоже не придает читабельности. Весьма не придает)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
twin, в чем тут виноват else? или это троллинг?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата (chee @ 29.04.2015 - 14:25)
twin, в чем тут виноват else? или это троллинг?

В потере читабельности. Простое логическое рассуждение. Если в функции/методе больше одного return, значит подразумевается дефолтный возврат. А дефолтный возврат не должен зависеть ни от каких условий. Иначе волей-неволей приходится разбирать эту зависимость, что влечет потерю читабельности.

Вот так почище будет:
if(!empty($some)) {
return check($some) == 2015;
}

return false;


Кроме того, при модификации проще вставлять дополнительные условия и досрочные выходы.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
twin,понятно

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
volter9
Спасибо stump и twin за советы, с их поправками будет так:
/**
* Clamp a integer $int between $min and $max
*
*
@param int $x
*
@param int $min
*
@param int $max
*
@return int
*/

function clamp ($int, $min, $max) {
$int = max($int, $min);

return min($int, $max);
}

/**
* Create a limited sequence
*
*
@param int $center
*
@param int $limit
*
@param int $min
*
@param int $max
*
@return int
*/

function limited_range ($center, $limit, $min, $max) {
if ($limit < 1) {
return array();
}

$range = array();
$half = intval($limit / 2);

$start = clamp($center - $half, $min + 1, $max - 1);
$end = clamp($center + $half, $min + 1, $max);

for ($i = $start; $i < $end; $range[] = $i, $i ++);

array_unshift($range, (int)$min);
array_push($range, (int)$max);

return $range;
}

/**
* Generates pagination array
*
*
@param int $total - Total of rows/items
*
@param int $items - Items per page
*
@param int $page - Page
*
@return array
*/

function pagination_generate ($total, $items, $page) {
$offset = $total > $items ? ($page - 1) * $items : 0;

$pages = ceil($total / $items);
$page = clamp($page, 1, $pages);

$limit = clamp($pages, 1, 9);
$pagination = limited_range($page, $limit, 1, $pages);

$limit = intval($items - $offset % $items);

return compact('offset', 'pages', 'page', 'pagination', 'limit');
}


По моему так уже лучше.

_____________
Мой блог
Быстрый ответ:

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