Профессиональное программирование на PHP

Страница 28 из 591


30 Глава 1 Стили кодирования

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

Циклы for, while, foreach

He следует использовать цикл while, когда подходят циклы for или foreach. Рассмотрим следующий код:

function is_prime($number) $i = 2,-

while($i < $number) {

if ( ($number % $i ) == 0) { return false;

}

$i + +;

}

return true;

}

Данный код весьма неустойчив. Рассмотрим ситуацию, когда случайно была добавлена точка ветвления, см. пример ниже:

function is_prime($number)

if(($number % 2) != 0) { return true;

}

$i = 0;

while($i < $number) { '

// Простейшая поверка четности $i if( ($i & 1) == 0 ) { continue;

}

if ( ($number % $i ) == 0) { return false;

}

$i++;

}

return true;

}

В данном примере сначала выполняется проверка, делится ли переданное в функцию число на 2. Если не делится, то далее нет необходимости проверять, делится ли оно на какое-либо другое четное число (поскольку все четные числа, имеют общий делитель 2). Здесь инкрементная операция случайно теряет приоритет, и цикл продолжается бесконечно.

Использование цикла for в данном случае более естественно: function is_prime($number)

if (($number % 2) != 0) { return true;

}

for($i=3; $i < $number; $i++) { // Простейшая поверка четности $i if( ($i & 1) == 0 ) {




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006