do while операторы while операторына ұқсас, оның бір ғана өзгешелігі – өрнектің ақиқаттылығын циклдің басында емес аяғында тексереді. Осының арқасында орындау_блогы кем дегенде бір рет орындалады. Оператордың жазылуы:
do{орындау_блогы}while(өрнек); Енді бір мысал келтірейік.
forоператоры РНР тіліндегі күрделі циклдер тобына жатады. Ол С тіліндегі циклге ұқсас болып келеді. Жазылуы:
for(1-өрнек;2-өрнек;3-өрнек){орындау_блогы} немесе
for(1-өрнек;2-өрнек;3-өрнек):орындау_блогыendfor; Мысалы, 10-ға дейінгі барлық жұп сандарды экранға шығару үшін for циклі келесідей түрде жазылады:
for($i=0;$i<10;$i++){ if($i%2==0)print$i.""; //жұпсандардышығару } Егер оператор жақшасындағы екінші өрнекті ($i<10 шарты) алып тастасақ, онда циклден шығу үшін break операторын қолдану керек болады:
for($i=0;;$i++){ if($i>=10)break;/*егер$i10-нанартықнемесе тең болса,циклдіаяқтаймыз*/ if ($i % 2 = = 0) print $i. " "; //егерсанжұпболса,онышығару} ?> Жақша ішіндегі барлық үш өрнекті де алып тастауға да болады. Мұндай жағдайда $i
санауышының алғашқы мәні де берілмейді және ол циклдің аяғында да өзгертілмейді. Сондықтан осы әрекеттерді жеке команда түрінде – орындау блогында немесе цикл алдында жазу қажет болады:
$i=0;//санауышқабастапқымәнбереміз for ( ; ; ) { if($i>=10)break; //егер$i10-нанартықнемесетеңболса,циклдіаяқтау if($i%2==0)print $i; //егерсанжұпболса,онышығару $i++;//санауыштыбіргеарттыру } ?> for жақшасы ішіндегі үшінші өрнекте бірнеше қарапайым командаларды үтір арқылы
жазуға да рұқсат етілген. Мысалы, егер біз барлық сандарды экранға шығарғымыз келсе, онда программаны қарапайым нұсқада жазуға болады:
for($i=0;$i<10;print$i,$i++); /*Егерорындау_блогындакомандаболмасанемесетекбіркоманда ғана болса, жүйелі жақшаларды қоймаса да болады */ ?>