Jump to content

Препоръчан пост

Циклите са контролни стуктури, които се използват за повторение на блок код. Те се използват в най-различни ситуации. Ако искаме да повторим някой блок код няколко пъти, ако искаме да обходим масив или да обработим резултатие получени от MySQL заявка например. Възможностите са много и PHP ни предоставя няколко цикъла, които могат да ни послужат за целта, но нека първо разгледаме два оператора, които могат да контролират циклите.

 

===

 

Контролиране на цикъл: break и continue.

 

Конструкции:

break;

break израз;

continue;

continue израз;

 

Операторът break служи за прекратяване изпълнението на цикъла. Brеак има незадължителен параметър, който оказва броя на вложените нива, от които трябва да се излезе.

Примери:

break;

или

break n;

 

В циклите също може да се използва операторът continue. Когато се стигне до оператора continue, изпълнението на кода от цикъла спира и се преминава към следващото му повторение. Тоест пропуска се останалата част от оператори след continue и се преминава към следващата част от изпълението на цикъла. Операторът също може да получава параметър (continue n;), който указва, колко повторения на цикъла да се пропуснат.

Примери:

continue;

или

continue n;

 

===

 

Цикъл while.

 

Конструкция:

while (условен израз)
{
  оператори;
}

 

В началото на изпълнение на цикъла се проверява условният израз. Ако той е true (истина) то цикълът се изпълнява, ако не - кодът в него се пропуска.

 

Ето и пример:

$n=0;
while ($n<5) 
{ 
  echo $n; 
  $n++; 
}

 

===

 

Цикъл do... while.

 

Конструкция:

do
{
оператори;
}while(условен израз);

 

Цикълът do... while е идентичен на while, с тази разлика че условният израз се проверява в края на цикъла, а не в началото. Това значи, че цикълът ще се изпълни задължително поне веднъж. do... while понякога се използва в този му вид:

do
{
  оператори;
  if ($error)
  {
  break;
  }
  оператори;
}while(false);

Този цикъл ще се изпълни само веднъж. Идеята е, ако се извършва дадена операция, но в нея се генерира грешка, да може кодът да се прекрати и да не се изпълни останалата част от оператори.

 

Примери за do... while:

$n=0;
do
{
  $n++;
  echo $n;
}while($n<5);

do
{
if (!isset($_FILES['input_file'])) {
  $err_msg = "Файлът не е изпратен изцяло.";
  break;
  }
  else {
  $user_file = $_FILES['input_file'];
  }

  switch ($user_file['error']) {
  case UPLOAD_ERR_INI_SIZE:
	$err_msg = "Файлът е твърде голям.";
	break 2;
  case UPLOAD_ERR_PARTIAL:
	$err_msg = "Възникнала е грешка по време на качването на файла.";
	break 2;
  case UPLOAD_ERR_NO_FILE:
	$err_msg = "Не сте избрали файл за качване.";
	break 2;
  case UPLOAD_ERR_FORM_SIZE:
	$err_msg = "Файлът е твърде голям.";
  case UPLOAD_ERR_OK:
	break;
  default:
	   $err_msg = "Възникна непозната грешка.";
  }
}while(false);

 

===

 

Цикъл for:

 

Конструкция:

for(израз, израз...; условен израз, условен израз...; израз, израз...)

{

оператори;

}

 

Първите изрази се изпълняват само веднъж, при достигане на цикъла. В повечето случаи в тях се инициализира управляващата променлива на цикъла. Условните изрази се проверяват в началото на всяко повторение на цикъла, а последните изрази се изпълняват в края на всяко повторение. При проверка на условен израз, ако той има стойност false (лъжа) цикълът приключва, в противен случай продължава. Изразите не са задължителни и някои от тях могат да бъдат пропускани.

 

Примери за for.

for ($num=1;$num<=100;$num++) {
  echo "<br>Квадрата на $num е ". $num*$num;
}

for (;;) {
  echo "infinite";
}

Във втория случай стойността на условния израз е винаги истина, затова той е безкраен.

 

Автор: Звездомир Златинов

Правата над статията принадлежат на SoftVisia

Link to comment
Сподели другаде

  • 6 months later...
Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...