Your SlideShare is downloading. ×
4. PHP Code Flow Control - PHP & MySQL Web Development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

4. PHP Code Flow Control - PHP & MySQL Web Development

4,526
views

Published on

Basic concepts about PHP code flow control …

Basic concepts about PHP code flow control
Telerik Software Academy: http://academy.telerik.com/school-academy/meetings/details/2011/10/11/php-school-academy-meeting
The website and all video materials are in Bulgarian.

This lecture discusses the following topics:

Loops
Conditional statements
Functions and return values
Include and require
Variables scope

Published in: Education, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,526
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
104
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Code Flow Control Loops, Conditional Statements, FunctionsRadoslav Georgievhttp://rado-dev.comGameCraftwww.game-craft.com
  • 2. Recap We talked about  How to install a Web Server that runs PHP  How to create PHP files and run them on the browser and inside the console  How to define variables in PHP – with $  How to define Constants – with define(‘name’,value)  How to deal with Strings  Some predefined constants and superglobals 2
  • 3. Contents1. Loops2. Conditional statements3. Functions and return values4. Include and require5. Variables scope
  • 4. Loops
  • 5. The while Structure expression PHP supports the C style while loop $a = 1; while ($a < 100) { $a ++; echo $a; } body  The body of the cycle will be executed until the condition is met  The body consists of one or more statements  If more than one, surrounding brackets are required  The condition expression is of type boolean
  • 6. The While Structure Live Demo
  • 7. do… while Structure The do-while structure is similar to while-do  The condition is checked after the body is executed!  The body is executed at least once! body $a = 1; do { $a ++; expression echo $a; } while ($a < 100); // this will produce 2 3 4 … 100 // the while cycle would output 2 3 4 … 99
  • 8. do… while Structure Live Demo
  • 9. for Cycle PHP supports C style for cycles for ($i = 0; $i < 10; $i++) echo $i;  The for cycle requires initialization, iteration and ending condition statement body  None of them are obligatory  Each statement can consist of multiple comma separated statements initializationconditioniteration end for ($i = 0, $j = 10; ; $i++, $j--) if ($j > $i) echo $i; else break;
  • 10. for Cycle Live Demo
  • 11. foreach Foreach is used to iterate over arrays $arr = array (1,1,2,3,5,8); foreach ($arr as $value) echo $value;  For each element in the array the body of the cycle will be called  $value will be assigned the value of the current element in the array
  • 12. foreach and Associative Arrays Foreach has second form $arr = array ("one" => 1, "two" => 2); foreach ($arr as $key => $value) echo $key." => ".$value;  Allows you to access the key, corresponding to the value in the array
  • 13. foreach Live Demo
  • 14. break and continue You can leave a cycle with the break command You can move immediately to next cycle iteration with continue command $i = 0; while (true) { $i ++; if ($i == 10) break; // exit the cycle if ($i%2 == 0) continue; // next iteration echo $i; } // will print out 1 3 5 7 9
  • 15. break andcontinue Live Demo
  • 16. Conditional Statements
  • 17. Conditional Statements - if if construct allows code to be executed only if Boolean expression certain condition is met the brackets! Dont forget $a = 5; $b = 7; if ($a > $b) echo "A is greater than B"; if ($a % 2) { echo "A is odd"; $b = $a % 2; Code block to execute if echo "A%2 is expression is true :".$b; }  Note: assignment returns as value the one being assigned. So we can have if ($b = $a%2) echo "A is odd - A%2 is :".$b;
  • 18. If - else if-else construct is extension of if construct and allows you to execute one code if condition is met or another if not $a = 5; $b = 7; if ($a > $b) echo "A is greater than B"; else echo "B is greater or equal to A";
  • 19. If - else Live Demo
  • 20. if - elseif Extension of the if-else construct  Allows you to add conditions for the else body if ($a > $b) echo "A is greater than B"; elseif ($a == $b) echo "A is equal to B"; else echo "B is greater than A";  It is similar to writing else if and have two conditional statements  You can have multiple elseif statements
  • 21. if - elseif Live Demo
  • 22. switch switch structure allows you to execute different code, depending on the value of variable  It is similar to writing a lot if-s  The switch body contains "case" clauses  The engine finds the clause that matches the value and jumps to that part of the code switch ($a) { case 0: echo "A is 0"; break; case 1: echo "A is 1"; break; }
  • 23. switch (2) Similarto else, you can have default case in a switch  If no case option is found the engine jumps to the default option switch ($a) { case 0: echo "A is 0"; break; case 1: echo "A is 1"; break; default: echo "A is … something else"; break; }  The default case is not obligatory the last one
  • 24. switch(3) When the engine moves to the found case it does NOT exit after the code of that case but moves on to the next one $a = 0; switch ($a) { case 0: echo "A is 0"; case 1: echo "A is 1"; }  This example will output "A is 0 A is 1"  The solution is to add break where necessary  This applies to the default case too
  • 25. switch(4) Due to the behavior of the switch engine, you can use empty cases  They are without break so the engine will jump to them and move on  You can use this to combine multiple values with single code $a = 0; switch ($a) { case 0: echo "A is 0"; break; case 1: case 2: echo "A is 1 or 2"; break; }
  • 26. switch(5) You can use any scalar type of variable (string, number, boolean, etc) switch ($name) { case "Dimitar": echo 1; break; case "Svetlin": case "Nakov" : echo 2; break; case false : echo "No name"; break; default : echo "?!"; break; }
  • 27. switch (6) Keep in mind switchuses the loose comparison "==" and may lead to unexpected results! The solution: $v = ""; switch (true) { case ($v === false): echo "its boolean false"; break; case ($v === 0): echo "its numeric zero"; break; case ($v === null): echo "its null variable"; break; case ($v === ""): echo "its empty string"; break; }
  • 28. switchLive Demo
  • 29. Ternary Operator The ternary operator is short version of if- else construct  It is used only to return one value or another, depending on condition  The syntax is: <condition>?<value if true>:<value if false> echo ($a<$b ? "a is smaller" : "b is smaller"); echo ($a>$b ? "a" : "b")." is greater"; $b = ($a % 2 ? 17 : 18);  You cannot use it like this: ($a > 17 ? echo "a" : echo "b" );
  • 30. Ternary Operator Live Demo
  • 31. Functions
  • 32. Functions Functions are sets of statements, combined under unique name  Declare with statement function  Can accept parameters and return value  Helps organize and reuse the code  Echo, print and others are inbuilt functions function sum ($a, $b) { return $a + $b; } echo sum(5,7); // will output 12
  • 33. Functions (2) The name of the function must be unique Can accept unlimited number of arguments  The are defined in brackets after the function name Can return value with return statement  Accepts one parameter – the return value
  • 34. Functions parameters Function can have predefined value for its parameters  Simplifies its usage function max ($a, $b, $strict = true) { if (strict) return ($a > $b); else return ($a >= $b); } echo max(3,3,false); echo max(4,3,true); echo max(3,3); // we can omit 3rd parameter  The default value must be constant expression  The defaulted arguments must be on the right side in the function declaration!
  • 35. Functions Live Demo
  • 36. Functions Parameters (2) By default PHP passes arguments to functions by value  This means change of argument value in the function will not have effect after function ends  You can force it to pass argument by reference with & prefix of the argument function double (&$a) { $a *= 2; } $b = 7; double ($b); echo $b; // will return 14;
  • 37. Function Parameters (3) PHP supports variable-length function parameters  You can pass any number of arguments to the function  The function can read the parameters with func_num_args() and func_get_arg() function sum(){ $res = 0; for ($i=0, $n = func_num_args(); $i < $n; $i++) $res += func_get_arg ($i); return $res; } echo sum (4,5,6);
  • 38. Function Return Values Functions can return values with the return statement  Accepts only one argument – the value to be returned  Exits the function function foo ($a) { return true; // the following code will NOT be executed echo $a + 1;  } return multiple values you can use arrays To  Function is not obligatory to return value
  • 39. Function Return Values (2) You can use fixed-size arrays to return multiple values and the list statement function small_numbers () { return array (0,1,2); } list ($a, $b, $c) = small_numbers();  The list statement assigns multiple array items to variables  This is NOT a function like array  Works only for numerical arrays and assumes indexes start at 0
  • 40. Variable Functions PHP supports variable functions  If variable name has parentheses appended to it the engine tries to find function with name whatever the function value is and executes it function foo () { echo "This is foo"; } $a = foo; $a(); // this calls the foo function  This doesnt work with some inbuilt functions like echo, print, etc
  • 41. Variable Functions Live Demo
  • 42. Few Notes on Functions You can check if function is declared with function_exists($name)  Useful to create cross-platform scripts Functions can be declared inside other functions  They do not exist until the outer function is called Functions can be defined conditionally  Depending on condition function can be defined or not
  • 43. Include and Require
  • 44. Include and Require include and require are statements to include and evaluate a file  Useful to split, combine and reuse the code  Both accept single parameter – file name require "header.php"; echo "body comes here"; require "footer.php";  If file is not found include produces warning, require produces fatal error  File can be with any extension
  • 45. include_once and require_once include_once and require_once are forms of include and require  With include and require you can include one file many times and each time it is evaluated  With include_once and require_once if file is already included, nothing happens  For instance if in the file you have declared function, double including will produce error "Function with same name already exists"
  • 46. IncludeLive Demo
  • 47. Variables Scope
  • 48. Variables scope Variables, declared in functions exist only until the function is over Files being included/required inherit the variable scope of the caller The arrays $_GET, $_POST, $_SERVER and other built-in variables are global  Can be accessed at any place in the code Variablesdeclared outside function are not accessible in it
  • 49. The Global Keyword Variables outside function are not accessible in it $a = "test"; function $foo () { echo $a; // this will not output anything }  They have to be global or function must declare it will use them with global $a = "test"; function $foo () { global $a; echo $a; // this will output "test"; }
  • 50. Loops and Variable Scope Variables, declared in loops are not accessible after loop is over for ($i = 0; $i < 5; $i++) { $arr[] = $i; } print_r ($arr); // outputs nothing  In the example you have to declare the array before the loop $arr = array(); for ($i = 0; $i < 5; $i++) { $arr[] = $i; } print_r ($arr); // this time works
  • 51. Note on Brackets As PHP code can be embedded in HTML, HTML code can be embedded in PHP code <?php if ($name == "John") { ?> Hello John! <?php } ?>  This is similar to writing echo "Hello John!";  Very useful for long texts
  • 52. Code Flow Control курсове и уроци по програмиране, уеб дизайн – безплатно BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране – Телерик академия форум програмиране, форум уеб дизайн уроци по програмиране и уеб дизайн за ученици ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET http://academy.telerik.com програмиране за деца – безплатни курсове и уроци ASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC безплатен SEO курс - оптимизация за търсачки алго академия – състезателно програмиране, състезаниякурсове и уроци по програмиране, книги – безплатно от Наков курс мобилни приложения с iPhone, Android, WP7, PhoneGap уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop Дончо Минков - сайт за програмиране free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране безплатен курс "Качествен програмен код" безплатен курс "Разработка на софтуер в cloud среда" C# курс, програмиране, безплатно
  • 53. Exercises1. Write a program that prints the numbers from 1 to 502. Write a program that prints the numbers from 1 to 50 that are not divisible by 5 and 73. Write a program that prints HTML table with N columns and N rows with the numbers 1, 2, 3, ... in its cells for a given N, defined as a constant4. Write a program that finds the minimal element of an given indexed array
  • 54. Exercises (2)5. Write a program that calculates N! (factorial 1*2*..*N) for a defined constant N6. Write a program that calculates N!*K!/(N-K)! for defined constants N and K7. Write a program that prints the binary representation of a decimal number N, defined by a constant8. Write a program that prints the decimal representation of a binary number, defined in a string
  • 55. Free Trainings @ Telerik Academy “PHP & MySQL Web Design" course academy.telerik.com/.../php-school- academy-meeting Telerik Software Academy  academy.telerik.com Telerik Academy @ Facebook  facebook.com/TelerikAcademy Telerik Software Academy Forums  forums.academy.telerik.com