PHP Kontrola Toka Funkcije

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
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