четверг, 3 июля 2014 г.

Не делайте лишний вызов функции

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

Плохо

foreach($rules as $rule) {
    //1-й вызов функции
    if ($this->userMatchRule($user, $rule) === 'match') {
        return true;
    }
    //2-й вызов функции
    if ($this->userMatchRule($user, $rule) === 'notMatch') {
        return false;
    }
}

Хорошо

foreach($rules as $rule) {
    //Сохраняем результат работы ф-ции в переменную
    $matchResult = $this->userMatchRule($user, $rule);
    
    //Далее работаем с переменной
    if ($matchResult === 'match') {
        return true;
    }
    if ($matchResult === 'notMatch') {
        return false;
    }
}

1 комментарий:

  1. babyliss pro titanium flat iron - Titanium Art
    The T1A-T1A titanium white wheels is the first-ever titanium pipe fully self adjustable design and is fully adjustable with everquest titanium a closed tooth to allow for hypoallergenic titanium earrings additional titanium trim as seen on tv control.

    ОтветитьУдалить