You are on page 1of 22

Doc.dr.sc.

Božidar Kovačić
Filozofski fakultet
Omladinska 14
51000 Rijeka
bkovacic@ffri.hr
PHP SERVERSKI SKRIPTNI
JEZIK
PHP – kontrola toka
2

 Kontrola toka i funkcije


 Donošenje odluka
 If, if-else
 Switch
 Petlje
 While
 Do-while
 For petlja
 Foreach petlja
 Break
 Continue

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
3

Funkcije
 Pisanje funkcija
 Rekurzija

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
4

 if naredba  if-else naredba


if (logički uvjet) { if (logički uvjet) {
naredba 1 naredba 1
naredba 2 …
… } else {
} naredba n

}

ternarni operator: $varijabla = uslov: naredba1:naredba2;

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
5

<?php
Uporaba if-else $sky_color = "blue";
$temp_fahrenheit = "65";

if($sky_color == "blue")
{
print("The sky is nice today! <br />");
if($temp_fahrenheit >= 70)
{
print("The temperature is wonderful.<br />");
print("Perhaps a picnic or bike ride is in order!
<br>");
}
else
{
print("It is a bit nippy.<br>");
print("Perhaps a jacket would be good.<br
/>");
}
}
else
{
print("The sky is not blue today.<br />");
}
?>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
6

<?php
Ugniježdavanje $x = 10;
$z = $x;
if blokova
print("<pre>");

// Style #1
if($x == $z)
{
print("<pre>");
print("if (...)\n{\n ... code ... \n}\n\n\n\n");
print("</pre>");
}

// Style #2
if($x == $z) {
print("<pre>");
print("if (...) \n{\n ... code ... \n}\n\n\n\n");
print("</pre>"); }

print("</pre>");

print("Use either style consistently for well formatted programs!<br />");


?>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
7

 Switch
switch (varijabla)
{
case “vrijednost 1”:
naredba ako je varijabla = vrijednost 1
case “vrijednost 2”:
naredba ako je varijabla = vrijednost 2
case “vrijednost 3”:
naredba ako je varijabla = vrijednost 3

default:
naredba za svaku drugu nenavedenu vrijednost
}

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
8

Uporaba switch
<?php
// Seed random number generator
srand((double)microtime() * 1000000);

// Pick a random lowercase letter and announce it


$letter = chr(rand(97, 122));
print("The letter is '" . $letter . "'<br />");

print("Single if: ");


if($letter == "a" || $letter == "e" || $letter == "i" ||
$letter == "o" || $letter == "u")
{ print("The letter is a vowel!<br />"); }
else { print("The letter is NOT a vowel!<br />"); }

print("If-elseif-else: ");
if($letter == "a") { print("The letter is a vowel!<br />"); }
else if($letter == "e") { print("The letter is a vowel!<br />"); }
else if($letter == "i") { print("The letter is a vowel!<br />"); }
else if($letter == "o") { print("The letter is a vowel!<br />"); }
else if($letter == "u") { print("The letter is a vowel!<br />"); }
else { print("The letter is NOT a vowel!<br />"); }

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
9

Uporaba switch
print("Switch: ");
switch($letter)
{
case "a":
case "e":
case "i":
case "o":
case "u":
// Notice if $letter is not 'u', it 'falls' through to here
print("The letter is a vowel!<br />");
break;
default:
print("The letter is NOT a vowel!<br />");
break;
}
?>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
10

 While petlja

while (uvjet za provjeru) {


naredbe za izvođenje
}

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
11

While petlja
<html>
<head>
<title>While</title>
</head>
<body>
<h3>Alphabet Soup</h3>
<?php
// Seed random number generator
srand((double)microtime() * 1000000);

$letter = chr(rand(97, 122));

// Loop while the $letter is not the letter "z"


while(strcmp($letter, "z"))
{
print($letter . "<br />");
$letter = chr(rand(97, 122));
}
?>
</body>
</html>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
12

 Do-while petlja

do
{
naredba koja se izvodi najmanje jednom, a onda ponavlja ovisno o
ispunjenju uvjeta za provjeru
} while (uvjet za provjeru);

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
13

 Petlja for

for (izraz1; izraz2; izraz3)


{
naredbe za ponavljanje
}
for ($i=1; $i <=6; $i++)
print(“<h$i> Pozdrav </h$i>;

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
14

 Petlja foreach

foreach (array as expression)


{
naredba za ponavljanje
}

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
15

Petlja foreach
<?php
$prog_language[] = "PHP";
$prog_language[] = "C";
$prog_language[] = "C++";
$prog_language[] = "Java";
$prog_language[] = "Forth";
$prog_language[] = "Perl";
$prog_language[] = "Python";
$prog_language[] = "Ruby";

foreach($prog_language as $language)
{
if(!strcmp($language, "PHP"))
print("<b>" . $language . "</b> <br />");
else
print($language . " <br />");
}
?>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP – kontrola toka
16

 Iskaz break
 Izraz za napuštanje petlje
 Iskaz continue
 Iskaz za preusmjeravanje izvođenja na početak i
nastavak izvođenja nove iteracije
 Iskaz exit
 Iskaz za zaustavljanje izvođenja skripta i njegova
napuštanje

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


<html>

PHP kontrola toka


<head>
<title>Break Nested</title>
</head>
<body>
17 <?php
// Seed random number generator
srand((double)microtime() * 1000000);
Break
$number = rand(1, 1000);
$j = 0;
$outer_loop_itr = 50;

for($i = 1; $i <= $outer_loop_itr; $i++)


{
$j = 0;
do
{
$j++;
$number = rand(1, 1000);
if($number == 999)
break;
} while(1);

$num_iterations[$i] = $j;
}
$avg_iterations = (array_sum($num_iterations) / $outer_loop_itr);
print("It took an average of " . $avg_iterations . " iterations " .
"to exit the inner do-while loop <br />");
?>
</body>
</html>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP - funkcije
18

 Pisanje funkcija
function (argument1, argument2, …)
{
naredba 1;

return (vrijednost);
}

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP - funkcije
<?php
19 function str_highlight($str, $start, $length)
{
if(func_num_args() < 4)
Funkcija $color = "#FF0000";
elseif(func_num_args() == 4)
$color = func_get_arg(3);
else
return $str;

$str_highlight = substr($str, $start, $length);


$str_highlight = "<span style=\"color:$color; font-
weight:bold;\">" .
$str_highlight . "</span>";

return substr_replace($str, $str_highlight, $start, $length);


}

$my_str = "All eppsling errors should be highlighted.";

// Pass in a custom color


$highlighted_str = str_highlight($my_str, 4, 8, "#0000FF");
print($highlighted_str . "<br />");

// Use the default highlight color


$highlighted_str = str_highlight($my_str, 4, 8);
print($highlighted_str . "<br />");
?>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP - funkcije
20

Rekurzija
<html>
<head>
<title>Recursion</title>
</head>
<body>
<?php
function cnt_backwards($from)
{
$from--;
if($from <= 1)
{
print($from);
return;
}
print($from);
cnt_backwards($from);
}
cnt_backwards(5);
?>
</body>
</html>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


<html>
<head>

PHP - funkcije <title>Decisions</title>


</head>
<body>
<?php
21 $str_ctrl_flow = "go";

if(!strcmp($str_ctrl_flow, "go"))
Donošenje odluke {
print("The string is \"go\", so we should keep going <br />");
}
else
{
print("Time to stop processing this script <br />");
exit;
}

$str_ctrl_flow = "stop";

if(!strcmp($str_ctrl_flow, "go"))
{
print("The string is \"go\", so we should keep going <br />");
}
else
{
print("Time to stop processing this script <br />");
exit;
}
print("This won't print. <br />");
?>
</body>
</html>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.


PHP - funkcije
22

include
<?php
include("math_lib.php");
?>
<html>
<head>
<title>Important Processing Page</title>
</head>
<body>
<?php
print(to_pow(6, 10) . "<br />");
print(multiply(5, 100) . "<br />");
print(divide(5, 0) . "<br />");
print(subtract(100, 50) . "<br />");
print(add(100, 50) . "<br />");
?>
</body>
</html>

Božidar Kovačić – WEB Programiranje Pomorski fakultet Rijeka ak.god. 2009/10.

You might also like