PHP/Valdymas

Iš Wikibooks.
< PHP
Peršokti į: navigacija, paiešką

php kalbos valdymo konstrukcijos yra paveldėtos iš C/C++ kalbų ir papildytos dar keletu įdomesnių konstrukcijų variacijų. Pavyzdžiui sudėtinis if parinkimo veiksmas:

  if ( $D < 0 )                   //      jei diskriminantas D<0
     echo "sprendinys neegzistuoja ";
     else if ( $D==0 )                 // jei diskriminantas D=0
          echo " sprendinys x= ".(-$b/(2*$a));
     else echo " sprendiniai: ".   // liko variantas D>0
                       " x1 = ".((-$b+sqrt($D))/(2*$a)).
                       " x2 = ".((-$b-sqrt($D))/(2*$a));

php kalboje gali būti užrašytas ir taip:

  if ( $D < 0 )                     //      jei diskriminantas D<0
     echo "sprendinys neegzistuoja";
  elseif ( $D==0 )                  //      jei diskriminantas D=0
 // ^^^^^ ------------------------------  panaudoti sujungti else if
     echo " sprendinys x = ".(-$b/2*$a);
  else echo " sprendiniai: ".   //          liko variantas D>0
                       " x1 = ".((-$b+sqrt($D))/(2*$a)).
                       " x2 = ".((-$b-sqrt($D))/(2*$a));   

toks rašymo būdas leidžia paprasčiau organizuoti daugiapakopį parinkimą:

 if     ( ($a==0) && ($b==0) && ($c!=0) ) echo "klaidinga lygtis c=0";
 elseif ( ($a==0) && ($b==0) && ($c==0) ) echo "begalinė sprendinių aibė";                  
 elseif ( ($a==0) && ($b!=0) ) echo " lygtis nekvadratine sprendinys x = ".(-$c/$b);
 else echo " lygtis kvadratine ";                 

ši struktūra tai kartu ir universalesnis c kalboje naudojamo switch valdymo operatoriaus atvejis, nors switch galima naudoti ir php kalboje.

Ciklai while, do, for taip pat yra periimti iš c kalbos, bet yra vienas papildomas ciklas foreach naudojamas perrenkant masyvo elementus:

  $aRfiBsek =Array();                                   // masyvas fibonacio sekai saugoti
  $aRfiBsek[]=$aRfiBsek[]=1;                            // pirmi du sekos elementai vienetai
  for ($i=2; $i<10; $i++) $aRfiBsek[]=$aRfiBsek[$i-1]+$aRfiBsek[$i-2];  // generuojama seka
  print "fibonačio seka: ";
  foreach ($aRfiBsek as $reiksme) print "$reiksme ";