Страница 1 из 1

[PHP] непонимаю что делает строка

Добавлено: 2008-05-23 18:22:11
Alex Keda

Код: Выделить всё

$rr1 = ($num+10) >= $NumHrefLinks ? $NumHrefLinks : $num+10;
сабж. ненавижу такую нотацию... может ктонить подсказать как в обычную с if/else и фигурными скобками переписать?
======
а ещё в чужом коде ненавижу разбираться...

Re: непонимаю что делает строка

Добавлено: 2008-05-23 20:32:48
ProFTP
язык?

Re: непонимаю что делает строка

Добавлено: 2008-05-23 21:38:44
hizel
да какая разница какой языг, семантика одинаковая для такой конструкции

Код: Выделить всё

if(($num=10) >= $NumHrefLinks){
  $rr1 = $NumHrefLinks
}else{
  $rr1 = $num+10
}
так понятнее? ;)

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 0:48:20
Alex Keda
ссорри - язык забыл указать. стартовый пост подправил.
=======
пасиб. так намного понятней.
=======
суки, руки повырывать за такие записи...

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 5:08:35
jeehadina
lissyara писал(а):ссорри - язык забыл указать. стартовый пост подправил.
=======
пасиб. так намного понятней.
=======
суки, руки повырывать за такие записи...
есть ситуации, когда такие записи удобные
а как на баше писали, кодеров которые набирают длинный код, лбом об бекспейс бить надо :mrgreen:

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 10:22:18
Alex Keda
пример можно?
Я знаю что оно быстрей работает - но помоему данный факт не перекрывает неудобство чтения

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 13:18:57
krilya
if.. else.. естествено читабельнее
но например если есть солянка из этих if,else... то код может превратиться в нечитабельный

Код: Выделить всё

    if (isset($params['keywords']) && isset($params['reset'])) {
        if ($params['reset'] == "true") {
            $isSet = true;
            $meta[] = $params['keywords'];
        } elseif ($params['reset']== "false") {
            //$meta[] = $params['data'];
        }
    } elseif (isset($params['keywords']) && !isset($params['reset'])) {
        $default = (isset($params['default'])) ? $params['default'] : null;
   } 
     return $default;
напимер в этом случае упомянутая конструкция очень даже уместна

p.s. ну и конечно от привычки зависит... или соглашения по стандартам кодирования :)

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 13:27:36
Alex Keda
несогласен...
отступы никто не отменял - и код будет вполне читаем.

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 14:12:30
zg
тринарный оператор, он же ?, применяется только в том случае, когда по условию нужно вернуть одно из двух значений, это единственный случай его применения, все остальные - криворукость.

Код: Выделить всё

<?
// Верное использование
$int = time();
$val = $int % 2 ? 'Нечётное' : 'Чётное';

echo $int, ' ', $val;

// -------------------

// Неверное использование
$int % 2 ? $val = 'Нечётное' : $val = 'Чётное';
?>

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 14:24:05
krilya
// Неверное использование
$int % 2 ? $val = 'Нечётное' : $val = 'Чётное';
мне такое в страшном сне бы не приснилося ;)

Re: [PHP] непонимаю что делает строка

Добавлено: 2008-05-24 18:04:57
jeehadina
zg писал(а):тринарный оператор, он же ?, применяется только в том случае, когда по условию нужно вернуть одно из двух значений, это единственный случай его применения, все остальные - криворукость.
оно