Matthew M.

Matthew M.

More on Conditional Loops

Slide Duration:

Table of Contents

Course Introduction

12m 13s

Intro
0:00
What Is PHP?
0:12
PHP Hypertext Preprocessor
0:13
Why Learn PHP?
1:09
Why Learn PHP?
1:10
Web Application: Educator Store
2:25
Web Application: Educator Store
2:26
Example of Web Application
3:18
PHP in the Educator Store
7:12
Dynamic Content Generation
7:22
Ease of Website Maintenance
7:55
Form Input Processing and Access to Advanced Functionality
9:00
What You Will Learn
9:36
What You Will Learn
9:37
Who Is This Course For?
10:56
Who Is This Course For?
10:57
How PHP & The Web Work

15m 32s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Client-Server Model
0:53
Client-Server Model
0:54
HTTP Protocol
2:15
Definition of Protocol
2:16
Hypertext Transfer Protocol (HTTP)
2:37
Uniform Resource Locators
3:46
Uniform Resource Locators (URLs)
3:47
Form of URLs
4:13
Accessing Webpages with URLs
5:13
Serving Webpages
6:14
Serving Webpages, Client Machine, and Server Machine
6:15
Static vs. Dynamic Webpages
8:30
Static Webpage
8:31
Dynamic Webpage
8:55
Server-Side Scripting
9:54
Server-Side Scripting
9:55
Static and Dynamic Webpage Coding Example
11:17
Static and Dynamic Webpage Coding Example
11:18
Serving Dynamic Webpages
13:07
Serving Dynamic Webpages
13:08
Setting Up Your Development Environment

33m 11s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
Development Environments
1:04
Development Environments
1:05
Our Default Development Environment: Window 7
1:54
Remote Development
4:04
Development Machine & Remote Server
4:05
Local Development
6:54
Development Machine
6:55
Software Used In This Course
9:41
Firefox Web Browser & Firebug Add-On
9:42
XAMPP
12:15
PSPAD Text Editor
13:16
XAMPP Installation
13:49
XAMPP Installation
13:50
Verify XAMPP Install
16:26
Verify XAMPP Install
16:27
localhost
19:08
localhost and 127.0.0.1 'loopback' IP Address
19:09
Document Root
21:16
Document Root and Directory Name
21:17
Document Root for Apache in XAMPP: htdocs & Example
22:13
Text Editor Spectrum
26:12
Text Editor Spectrum: Barebones to IDE
26:13
PSPad & Example
27:02
Finding Help
30:26
Web Resources
30:27
Homework Challenge
31:36
Homework Challenge
31:37
Homework Challenge (cont.)
32:38
Homework Challenge (cont.)
32:39
Your First PHP Script

12m 41s

Intro
0:00
Lesson Overview
0:19
Lesson Overview
0:20
.php To HTML
1:00
.php To HTML
1:01
PHP Delimiters
2:20
PHP Delimiters: Opening & Closing PHP Tags
2:21
'Hello, World!' Example
4:34
Echo Statement & PHP Tags
4:35
Adding Second Heading
7:34
Homework Challenge
9:56
Homework Challenge
9:57
Basic PHP Syntax

40m 24s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
PHP Delimiters
0:38
Long and Script Form
0:39
Short and ASP Style
1:33
Example
2:01
php.ini: PHP's Configuration
3:40
php.ini
3:41
Configuration Directives
3:48
Short and ASP Style: Enabled/Disabled
4:13
phpinfo()
7:58
Statements
14:28
PHP Statements
14:29
Example: PHP Statements
14:55
Comments
16:53
PHP Comments
16:55
Single-line Comments
17:37
Multi-line Comments
18:13
Example: PHP Comments
18:47
Coding Conventions
24:26
Coding Conventions
24:27
Example: PHP Coding Conventions
26:19
Homework Challenge #1
33:51
Homework Challenge #1
33:52
Homework Challenge #1 (cont.)
35:41
Homework Challenge #1 (cont.)
35:42
Homework Challenge #2
36:09
Homework Challenge #2
36:10
Homework Challenge #2 (cont.)
38:07
Homework Challenge #2 (cont.)
38:08
Variables & Numeric Data Types

16m 38s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:12
Working With Data
0:48
8 Types of Data for PHP
0:49
Identifiers
1:40
Identifiers: Definition and Example
1:41
Variables
2:47
Variables Definition
2:48
Variables Syntax
3:06
Integer Data Type
4:44
Integer Data Type
4:45
Integer Literals
5:08
Examples
5:30
Float Data Type
6:26
Float Data Type
6:27
Float Literals
7:00
Example
7:21
Example: PHP Code Declaring Variables
8:06
Example: PHP Code Declaring Variables
8:07
var_dump() Function
9:59
var_dump()
10:00
Example: Code and Output
10:30
Example: var_dump() Function
11:19
Coding Conventions: Variables
12:32
Lower Camel Case Notation
12:33
Variable Name Lengths
13:54
Homework Challenge
14:54
Homework Challenge
14:55
String Data Type

18m 6s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
String Data Type
0:29
String Data Type
0:30
Specifying String Literals
1:03
Single-Quoted Strings
1:53
Single-Quoted Strings
1:54
Escape Sequences
2:31
Escape Sequences
2:32
Example
2:46
Escape Sequences for Commonly Used Special Characters
4:32
Double-Quoted Strings
6:04
Double-Quoted Strings
6:05
Variable Interpolation
6:44
Coding Conventions: Strings
7:54
Coding Conventions: Strings
7:55
Homework Challenge
8:54
Homework Challenge
8:55
Include Files & Web Application Introduction

38m 43s

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
include Statement
0:47
include Statement: Definition
0:48
Include Statement: Syntax
2:05
include Statement: Example
2:25
include Path
6:32
Absolute and Relative Path
6:34
Specified Path
7:15
Not Specified Path
7:55
Code Reuse
9:35
Code Reuse
9:36
Example
11:11
require Statement
12:56
require Statement: Definition
12:57
require Statement: Syntax
13:32
Include versus Require
13:52
Coding Conventions
16:33
Coding Conventions
16:34
Introduction to Our Web Application
20:32
Introduction to Our Web Application
20:33
Updating Web Application
21:14
Web Application Example
22:59
Homework Challenge
35:33
Homework Challenge
35:34
Homework Challenge (cont.)
37:38
Homework Challenge (cont.)
37:39
Arrays

34m

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
What is an Array?
0:42
What is an Array?
0:43
Arrays in PHP
1:44
Keys and Values
2:15
Types of Arrays
3:37
Indexed Arrays & Associative Arrays
3:38
array() Construct
6:47
Declaring Arrays
6:48
Defining Indexed Array
7:00
Defining Associative Arrays
7:43
Square Bracket Syntax
8:50
Square Bracket Syntax
8:51
Accessing Indexed Arrays
9:02
Accessing Associative Arrays
9:56
Arrays Example
10:41
Indexed Arrays Example
10:45
Associative Arrays Example
13:55
Multi-Dimensional Arrays
18:28
Multi-Dimensional Arrays
18:29
Multi-Dimensional Arrays Example
18:51
Multi-Dimensional Arrays in PHP File
20:34
Coding Conventions: Arrays
27:59
Coding Conventions: Arrays
28:00
Homework Challenge #1
29:20
Homework Challenge #1
29:21
Homework Challenge #2
30:38
Homework Challenge #2
30:39
Web Application Development

27m 38s

Intro
0:00
Versions
0:14
Version 3.0
1:23
Version 3.1
8:08
Version 3.2
11:42
Version 3.3
20:27
Homework Challenge
26:31
Homework Challenge
26:32
Script Input & The GET Method

30m 18s

Intro
0:00
Lesson Overview
0:15
Lesson Overview
0:16
Providing Input to PHP
0:39
GET Method, POST Method, and Cookies
0:40
Name/Value Pairs
1:22
GET Method
1:57
HTTP GET Method
1:58
Query String
2:52
GET Method Example
3:38
GET Method Example
3:39
Review of HTML Forms
8:16
HTML Forms
8:17
Input Control and Submitted Form
9:13
<form> Tag
10:07
<form> Tag
10:08
Method
10:34
Action
11:13
Input Control Examples
11:50
Input Control Examples
11:51
Common Input Controls
17:31
Common Input Controls
17:32
Query Strings
18:52
Query Strings
18:53
Query Strings Syntax
19:12
URL Encoding
20:01
URL Syntax
20:02
Examples
21:17
Simple Form Example
22:28
urlencode() Function
24:08
urlencode() Function
24:09
Example
25:03
urlEncoding Text Example
25:54
Simple Form Example
25:55
Homework Challenge
28:46
Homework Challenge
28:47
Accessing Form Data in PHP

32m 1s

Intro
0:00
Lesson Overview
0:17
Lesson Overview
0:18
$_GET Array
0:48
$_GET Array
0:49
Accessing the Value of a Name/Value Pair Submitted Via GET
1:04
Name Form Example
2:54
Name Form and the $_GET Array
2:55
Using Arrays with Input Controls
6:34
Using Arrays with Input Controls
6:35
Common Example
6:47
Indexed Array Form Example
8:16
Indexed Array Form Example
8:17
Associative Arrays with Input Controls
10:14
Associative Arrays with Input Controls
10:15
Associative Arrays Example
11:41
Associative Arrays Example
11:42
Echo Form Example
15:18
Echo Form Example
15:19
Outputting Arrays In String
23:42
Variable Interpolation
23:43
Outputting a Value in an Indexed Array Within a String
24:12
Simple' Syntax, 'Complex' Syntax, and 'Curly Brace' Syntax
25:00
Outputting Arrays In String Example
26:25
Outputting Arrays In String Example
26:26
Homework Challenge
29:39
Homework Challenge
29:40
Web Application Development

20m 20s

Intro
0:00
Lesson Overview
0:19
Lesson Overview
0:20
Version 3.3
0:38
Version 3.3
0:42
Version 4.0 Changelog
2:43
GET Query
2:45
Adding, Editing, and Removing
3:24
Version 4.0 Coding Example
3:55
item.php, itemID, and itemListing
4:00
Version 4.1 Changelog
10:36
Version 4.1 Changelog
10:37
Version 4.1 Coding Example
11:45
Adding Checkout and Thank You & Editing Footer and Store
11:46
Homework Challenge
18:45
Homework Challenge
18:46
Expression & Operators

31m 56s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Expressions
0:41
Expressions Definition
0:42
Example: Literals
0:55
Example: Variables
1:05
Operators
1:44
Operators Definition
1:45
Unary, Binary, and Ternary Operators
2:07
Assignment Operators
2:52
Assignment Operators
2:53
Array Assignment Operator
3:47
Arithmetic Operators
6:15
Operators for Common Arithmetic Operations
6:16
Modulus Operator
7:41
Arithmetic Operators Example
8:25
Increment/Decrement Operators
10:48
Increment/Decrement Operators
10:49
Pre- and Post- Increment/Decrement
12:43
Coding Example
15:14
Combined Assignment Operators
16:44
Combined Assignment Operators
16:45
Combined Assignment Operators Examples
18:23
Coding Example
19:39
String Operators
20:28
Concatenation Operator, String Variables, and String Literals
20:29
String Operators Example
22:41
Precedence & Associativity
23:40
Precedence & Associativity
23:41
Expression Containing Multiple Operations
23:58
Expression Containing Two Operations of Equal Precedence
25:55
Using Parentheses to Force Precedence
26:52
Precedence & Associativity Review
28:57
Homework Challenge
31:08
Homework Challenge
31:09
Web Application Development

20m 51s

Intro
0:00
Lesson Overview
0:15
Lesson Overview
0:16
Version 4.1 Review
0:33
Version 4.1 Review
0:34
Version 5.0 Changelog
1:05
Version 5.0 Changelog
1:06
Version 5.0 Example
2:19
Adding View Cart & Editing Checkout, Footer and Store
2:20
Version 5.1 Changelog
15:36
Version 5.1 Changelog
15:37
Version 5.1 Coding Example
17:33
Forwarding Order Total to Thank You Page
17:34
Homework Challenge
20:09
Homework Challenge
20:10
Boolean & Null Data Types

20m 11s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Boolean Data Type
0:38
Boolean Data Type
0:39
Two Boolean Literals
1:24
Boolean Example
1:50
Boolean Example
1:51
Comparison Operators
4:00
Comparison Operators Definition
4:01
Common Comparison Operators
4:40
Comparison Operators Example
6:49
Comparison Operators (Cont.)
10:10
Identical and Not Identical
10:11
Example: Identical and Not Identical
11:24
Null Data Type
13:36
Null Data Type Definition
13:37
Null Literal
14:08
Variable and Null Data Type
14:30
'==' Operator
15:24
Null Data Type Example
15:59
Coding Convention
18:41
Coding Convention
18:42
Homework Challenge
19:17
Homework Challenge
19:18
Type Casting

22m 41s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Type Juggling
0:54
Type Juggling
0:55
Automatic Conversion
2:23
Type Casting
3:53
Type Casting
3:54
Implicit and Explicit Type Casting
4:00
Explicitly 'cast' a Variable Example
4:16
Type Casting (cont.)
6:48
PHP Allows the Following Explicit Type Casts
6:49
The settype () Function
8:18
Type Casting Coding Example
9:00
Explicit Type Casts
9:01
String Conversions
14:52
String Conversions
15:05
Common Conversions to String
15:55
Numeric Conversions
18:18
Numeric Conversions
18:19
Boolean Conversions
20:29
Boolean Conversions
20:30
Homework Challenge
21:38
Homework Challenge
21:39
Introduction to Functions

52m 20s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
What are Functions?
0:51
Definition of Faction
0:52
PHP and Function Call
1:53
Function Calls
2:42
Function Calls
2:43
Function Arguments
3:17
Return Values
4:56
Return Values
4:57
Function Chaining
6:29
Function Chaining
6:30
PHP.net Function Reference
8:23
PHP.net & Function Prototypes
8:24
PHP.net Function Reference Example
9:29
Optional Function Arguments
12:28
Optional Function Arguments
12:29
String Functions
14:57
strtoupper() and strtolower()
14:58
implode (), str_replace(), explode(), strpos(), substr(), and strlen()
18:31
Array Functions
25:48
count()
25:49
in_array() and array_key_exists()
26:06
sort() and ksort()
26:37
Example: count() and in_array()
27:50
Example: array_key_exists()
29:53
Example: sort() and ksort()
31:20
Date & Time Functions
33:38
date() and time()
33:39
getdate()
34:49
mktime()
35:01
Date & Time Functions
35:12
Example: date() and time()
35:58
Example: getdate()
42:15
Example: mktime()
43:15
Homework Challenge #1
44:31
Homework Challenge #1
44:32
Homework Challenge #1 (Cont.)
45:28
Homework Challenge #1 (Cont.)
45:29
Homework Challenge #2
46:34
Homework Challenge #2
46:34
Homework Challenge #2 (Cont.)
48:06
Homework Challenge #2 (Cont.)
48:07
Homework Challenge #2 (Cont.)
49:17
Homework Challenge #2 (Cont.)
49:18
Homework Challenge #3
50:08
Homework Challenge #3
50:09
Constants

19m 24s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Constants vs. Variables
0:55
Constants vs. Variables
0:56
Constant Identifiers
2:28
Constant Identifiers Definition and Examples
2:29
Declaring Constants
3:47
Two Ways of Declaring Constants
3:48
Syntaxes
4:10
Major Difference in the Two Forms
4:48
Using Constants Example
6:25
Using Constants Example
6:26
Coding Conventions
11:08
Constant Names
11:09
define () Function
11:42
Meaningful Names
12:00
$_SERVER Superglobal
12:23
$_SERVER
12:24
$_SERVER ['DOCUMENT_ROOT']
13:15
$_SERVER Superglobal Example
13:52
Homework Challenge
17:40
Homework Challenge
17:41
Web Application Development

26m 29s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Version 6.0
1:13
Version 6.0 & Version 5.1 Review
1:14
Version 6.0 Changelog
11:24
Version 6.0 Changelog
11:25
Version 6.1 Changelog
12:00
Version 6.1 Changelog
12:01
Version 6.1 Coding Example
12:42
Version 6.1 Coding Example
12:43
Version 6.2 Changelog
15:18
Version 6.2 Changelog
15:19
Version 6.2 Coding Example
18:19
Version 6.2 Coding Example
18:20
Homework Challenge
25:24
Homework Challenge
25:25
Conditional Control Structures

18m 58s

Intro
0:00
Lesson Overview
0:26
Lesson Overview
0:27
Statement Groups
0:57
Statement Groups
0:58
Example
1:10
Conditional Control Structures
1:38
Conditional Control Structures
1:39
PHP Control Structures
1:56
if Statement
2:32
if Statement
2:33
if Statement (cont.)
3:49
if Statement Coding Example
3:50
else Statement
7:26
else Statement
7:27
if/else Statement Coding Example
8:50
isset() Construct
9:59
isset() Construct
10:00
isset() Construct Coding Example
12:00
Coding Conventions
15:13
Coding Conventions
15:14
Coding Conventions (Cont.)
16:39
Coding Conventions (Cont.)
16:40
Homework Challenge
17:25
Homework Challenge
17:26
Error Handling

19m 8s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Error Handling in PHP
0:41
Error Handling in PHP
0:42
Coding Example
1:45
error_reporting() Function
7:02
error_reporting() Function
7:03
Coding Example
8:04
Additional Error Directives
9:02
display_errors
9:13
log_errors
9:37
error_log
9:50
track_errors
10:12
Coding Examples
10:29
Error Control Operator
13:38
Error Control Operator & Coding Example
13:39
Homework Challenge
16:19
Homework Challenge
16:20
Homework Challenge (cont.)
17:58
Homework Challenge (cont.)
17:59
Logical & Ternary Operators

23m 22s

Intro
0:00
Lesson Overview
0:17
Lesson Overview
0:18
Logical Operators
0:49
Logical Operators Definition
0:50
NOT (!)
1:08
OR ( ||, or)
1:35
AND (&&, and)
2:08
XOR (xor)
2:30
Logical Operators (cont.)
2:54
The OR and AND Logical Operators
2:55
Precedence of Logical Operators
3:35
Logical Operators Coding Example
3:58
Logical Operators Coding Example
3:59
Short-Circuit Operators
9:54
Short-Circuit Operators
9:55
Coding Example
10:49
Ternary Operator
14:07
Ternary Operator
14:08
Syntax and Example
14:24
Coding Conventions
17:36
Coding Conventions
17:37
Homework Challenge
19:08
Homework Challenge
19:09
Homework Challenge (cont.)
20:26
Homework Challenge (cont.)
20:27
Web Application Development

19m 27s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Version 6.2 Review
0:26
Version 6.2 Review
0:27
Version 7.0 Changelog
2:39
Version 7.0 Changelog
2:40
Version 7.0 Coding Example
4:35
Version 7.0 Coding Example
4:36
Version 7.1 Changelog
12:43
Version 7.1 Changelog
12:44
Version 7.1 Coding Example
13:52
Version 7.1 Coding Example
13:53
Homework Challenge
17:42
Homework Challenge
17:43
More Conditional Control Structure

20m 49s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
elseif Statement
0:45
elseif Statement
0:46
elseif Statement Coding Example
1:22
Multiple elseif Statements
2:16
Multiple elseif Statements
2:17
Multiple elseif Statements Coding Example
3:07
Adding an else Statement
5:44
Adding an else Statement Overview
5:45
Adding an else Statement Coding Example
6:50
switch() Statement
8:07
switch() Statement
8:08
switch() Statement (Cont.)
9:14
switch() Statement (Cont.)
9:15
switch() Statement Coding Example
11:09
default Case
14:20
default Case
14:21
default Case Coding Example
15:13
Coding Conventions
15:57
Coding Conventions
15:58
Coding Conventions (cont.)
17:10
Coding Conventions (cont.)
17:11
Homework Challenge
18:06
Homework Challenge
18:07
Homework Challenge (cont.)
19:18
Homework Challenge (cont.)
19:19
Nested Conditional Control Structures

24m 49s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Nested Control Structures
0:36
Nested Control Structures
0:37
Nested Control Structures Coding Example
2:08
Coding Conventions
6:34
Nested vs. Not Nested Control Structures
6:35
Debugging Control Structures
7:51
Debugging Control Structures
7:52
Incorrectly Specified Test Conditions and Forgetting a Break Statement
8:32
Incorrectly Placing an Opening or Closing Curly Brace
12:14
Debugging Tips
16:24
Tracing the Execution of Your Code
16:25
Adding Echo Statement
17:15
Homework Challenge
21:41
Homework Challenge
21:42
Homework Challenge (cont.)
23:08
Homework Challenge (cont.)
23:09
Web Application Development

28m 20s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Version 7.1 Review
0:46
Version 7.1 Review
0:47
empty () Construct
1:38
empty () Construct
1:39
empty () Construct Coding Example
2:37
Version 8.0
5:32
Version 8.0 Overview
5:33
Version 8.0 Coding Example
7:08
Version 8.0 Coding Example
7:09
Version 8.1
16:13
Version 8.1 Overview
16:14
Version 8.1 Coding Example
19:48
Version 8.1 Coding Example
19:49
Homework Challenge
26:19
Homework Challenge
26:20
Sending Email Using PHP

43m 50s

Intro
0:00
Lesson Overview
0:14
Lesson Overview
0:15
Built-in Mail Extension
1:28
Built-in Mail Extension
1:29
SMTP Overview
2:04
SMTP Overview
2:05
SMTP - Windows
3:08
SMTP - Windows
3:09
SMTP - Linux/UNIX
4:58
SMTP - Linux/UNIX
4:59
Mail Configuration Directives
6:35
Mail Configuration Directives
6:36
Coding Example
7:48
Mail Server Authentication
10:20
Mail Server Authentication
10:21
fake sendmail Program
12:27
fake sendmail for Windows
12:28
Main 'add-on' feature
13:03
Username & Password
13:25
SMTP - XAMPP for Windows
14:07
SMTP - XAMPP for Windows
14:08
Sendmail Example
16:19
Sendmail Example
16:20
mail() Function
18:39
mail() Function
18:40
additional_headers
19:45
'From' Header
20:12
mail() Function Coding Example
21:09
mail() Function Coding Example
21:40
Web Application Development
31:43
Version 9.0 Changelog
31:44
ContactUs.php
32:52
ContactUs.php
32:53
contactInfo
33:45
Version 9.0 Coding Example
34:31
Version 9.0 Coding Example
34:32
Homework Challenge
41:32
Homework Challenge
41:33
User-Defined Functions

56m

Intro
0:00
Lesson Overview
0:16
Lesson Overview
0:17
Defining Functions
1:29
Four Parts of Defining a Function
1:30
Functions Example 1
2:29
Function Parameters
5:29
Function Parameters
5:30
Functions Example 2
8:20
Return Statements
12:53
Return Statements
12:54
Functions Example 3
14:20
Where to Define Functions
20:34
Where to Define Functions
20:35
include_once Construct
22:10
include_once Construct
22:11
include_once Coding Example
23:55
Reasons to Use Functions
27:44
Take Advantage of Code Reuse
27:45
Improve Code Readability
29:56
Use Instead of 'content' Include Files
32:12
Web Application Development
34:42
Version 10.0 Changelog
34:43
Version 10.0 Coding Example
37:55
Version 10.0 Coding Example
37:56
Outputting HTML in Functions
47:04
Outputting HTML in Functions
47:05
Example
49:02
Coding Conventions
53:16
Coding Conventions
53:17
Homework Challenge
54:33
Homework Challenge
54:34
Variable Scope

31m 37s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
What is Variable Scope?
0:57
Variable Scope
0:58
Global Scope
1:15
Local Function Scope
1:50
Variable Scope Coding Example
2:26
Variable Scope Coding Example
2:27
global Keyword
8:52
global Keyword Overview
8:53
global Keyword Example
9:25
Superglobals
12:34
Superglobals
12:35
Superglobals Example
14:53
Pitfalls of Global Variables
18:34
Pitfalls of Global Variables
18:35
When to Define Variables
22:09
When to Define Variables
22:10
Putting It All Together
22:56
Putting It All Together Example
22:57
Function Scope
28:56
Function Scope
28:57
Homework Challenge
29:41
Homework Challenge
29:42
Homework Challenge (cont.)
30:59
Homework Challenge (cont.)
31:00
Web Application Development

28m 27s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Version 11.0 Changelog
0:56
Version 11.0 Changelog
0:57
processGetVar()
1:42
processGetVar() Overview
1:43
processGetVar() Example
2:25
emailComments()
6:35
emailComments() Overview
6:36
emailComments() Example
7:14
outputItemLink()
11:19
outputItemLink() Overview
11:20
outputItemLink() Example
11:45
calcCartTotal()
19:25
calcCartTotal() Overview
19:26
calcCartTotal() Example
21:14
Homework Challenge
25:56
Homework Challenge
25:57
Optional Parameters

19m 35s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Optional Parameters
0:26
Optional Parameters Definition
0:27
Default Values
0:53
Optional Parameters Coding Example
3:26
More on Optional Parameters
6:55
Multiple Optional Parameters
6:56
Coding Example
8:05
Homework Challenge
16:18
Homework Challenge
16:19
Web Application Development

23m 7s

Intro
0:00
Lesson Overview
0:13
Lesson Overview
0:14
Version 12.0 Changelog
0:55
Version 12.0 Changelog
0:56
Update to outputLink()
1:44
Update to outputLink()
1:45
outputLink() Coding Example
2:40
outputImg()
13:57
outputImg() Overview
13:58
outputImg() Coding Example
15:35
Homework Challenge
22:05
Homework Challenge
22:06
Introduction to Conditional Loops

57m 20s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
while Loop
0:48
Definition
0:49
Syntax and Usage
1:12
Coding Example
3:33
Looping Over Arrays
13:16
Looping Over Arrays
13:17
Coding Example
13:53
Looping Over Arrays (cont.)
16:43
Internal Array Pointer
16:44
Array Traversal Functions
17:29
current ()
17:30
next () and prev ()
18:16
reset () and end ()
19:25
key ()
19:40
Indexed Arrays: Using current () and next ()
20:40
Indexed Arrays: Using current () and next ()
20:41
Associative Arrays: Using key (), current (), and next ()
24:06
Associative Arrays: Using key (), current (), and next ()
24:07
Array Traversal Functions (cont.)
29:41
list () Construct and Example
30:07
each () Construct and Example
34:40
Lopping Over Arrays Using list(), each()
42:13
Lopping Over Arrays Using list(), each()
42:14
Control Structure Scope
50:37
Definition and Example
50:38
Control Structure Scope Coding Example
51:59
Coding Conventions
54:20
Coding Conventions
54:21
Homework Challenge
54:58
Homework Challenge
54:49
More on Conditional Loops

35m 50s

Intro
0:00
Lesson Overview
0:08
Lesson Overview
0:09
do-while Loop
0:42
do-while Loop
0:43
Simple do-while Loop Example
1:51
Another do-while Loop Example
4:09
continue Statement
10:46
continue Statement
10:47
For Example
11:07
continue Statement Coding Example
12:44
break Statement Re-Visited
18:10
break Statement Re-Visited
18:11
break Statement In while Loops Example
19:38
Infinite Loops
23:26
Infinite Loops
23:27
Coding Example
24:57
Common Loop Pitfalls
25:59
Counter Initialization Occurs in Loop
26:30
Counter Not Incremented in Loop
29:30
Unreachable Break Statement
30:50
Coding Conventions
33:48
Do-while Statements Coding Conventions
33:49
Homework Challenge
34:28
Homework Challenge
34:29
Web Application Development

22m 7s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Version 13.0 Changelog
0:48
Updating 'viewCart.php' and calcCartTotal()
0:49
Creating isValidCart()
9:22
Adding Three New Item to the Store & Links
15:56
Version 13.1 Changelog
17:20
Updating outputItemLink() to Remove Its Global Dependency on $itemCatalog
17:21
Homework Challenge
20:34
Homework Challenge
20:35
For & Foreach Loops

29m 28s

Intro
0:00
Lesson Overview
0:11
Lesson Overview
0:12
for Loops
0:45
for Loops
0:46
Expression 1
1:22
Expression 2
1:47
Expression 3
2:01
Simple Example
2:27
Simple Example
2:28
Notes on for Loops
8:56
Notes on for Loops
8:57
Ending Loop Using Test Condition and Break Statement
10:06
Ending Loop Using Test Condition and Break Statement
10:07
foreach Loops
12:03
foreach Loops
12:04
Indexed Array Syntax
14:10
Syntax
14:11
Example
15:23
Associative Array Syntax
18:31
Syntax
18:32
Example
19:47
Coding Conventions
25:05
for Loops
25:06
foreach Loops
25:58
Homework Challenge
26:52
Homework Challenge
26:53
Web Application Development

25m 58s

Intro
0:00
Lesson Overview
0:12
Lesson Overview
0:13
Version 14.0 Changelog
1:19
Version 14.0 Changelog
1:20
Version 14.0 Coding Example
1:57
Version 14.0 Coding Example
1:59
Version 14.1 Changelog
5:39
Version 14.1 Changelog
5:40
Version 14.1 Coding Example
7:06
Version 14.1 Coding Example
7:07
Version 14.2 Changelog
15:37
Version 14.2 Changelog
15:38
Version 14.2 Coding Example
16:25
Version 14.2 Coding Example
16:26
Homework Challenge
23:35
Homework Challenge
23:36
Conditional Loop Wrap-Up

23m 12s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Nested Conditional Loops
0:39
Nested Conditional Loops
0:40
Coding Example
1:10
continue & break Re-Visited
5:17
Continue Statements and Coding Example
5:30
Break Statements and Coding Example
11:34
Loop Debugging Tips
15:16
Add Short Debug Statement At the Very Beginning
15:17
Output a Counter Variable
18:10
Add Debug Statement At the Very End
19:20
Homework Challenge
20:20
Homework Challenge
20:21
Homework Challenge (cont.)
22:00
Homework Challenge (cont.)
22:01
Variable-Length Parameter Lists

22m 16s

Intro
0:00
Lesson Overview
0:09
Lesson Overview
0:10
Variable-Length Parameter Lists
0:34
Variable-Length Parameter Lists
0:35
Coding Example
1:51
Variable-Length Parameter Lists (cont.)
5:21
When a Parameter List is Defined For the Functions
5:22
Coding Example
6:32
Variable Type Functions
9:54
is_int (), is_float (), is_string (), and is_bool()
9:55
is_ array ()
10:50
is_null ()
11:01
Variable Type Functions Coding Example 1
11:27
is_numeric() and Example
15:57
Variable Type Functions Coding Example 2
17:12
Homework Challenge
19:35
Homework Challenge
19:36
Homework Challenge (cont.)
20:52
Homework Challenge (cont.)
20:53
Web Application Development

38m 36s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
Version 15.0 Changelog
0:33
outputLink (), outputImg (), is_array () and is_string ()
0:34
Version 15.0 Coding Example
1:31
Version 15.0 Coding Example
1:32
Version 15.1 Changelog
7:55
Removing Redundant Code and Adding New Function Called outputHtmlTag ()
7:56
Version 15.1 Coding Example
8:37
Version 15.1 Coding Example
8:38
Version 16.0 Changelog
14:55
Creating emailOrder() Using New Constants ORDER_EMAIL_FROM and ORDER_EMAIL_SUBJECT
14:56
Version 16.0 Coding Example
16:30
Version 16.0 Coding Example
16:31
Version 16.1 Changelog
32:21
Creating formatAsDollars ()
32:22
Version 16.1 Coding Example
32:57
Version 16.1 Coding Example
32:58
Homework Challenge
36:27
Homework Challenge
36:28
Miscellaneous Topics

31m 49s

Intro
0:00
Lesson Overview
0:10
Lesson Overview
0:11
register_globals Directive
0:58
register_globals
0:59
Coding Example
2:04
$_GET vs. $HTTP_GET_VARS
4:07
$_GET vs. $HTTP_GET_VARS
4:08
register_long_arrays Directive Coding Example
5:44
Magic Constants
7:30
Magic Constants
7:31
__LINE__, __FILE__, __FIR__, and __FUNCTION__
8:16
Coding Example
9:06
exist() & die()
13:19
exist() & die()
13:20
Coding Example
14:08
Execution Operator
16:23
Execution Operator
16:24
Coding Example
17:27
Array Operators
18:23
Equality (==) and Inequality (!=, <>)
18:43
Identity (===) and Non-Identity (!==)
19:13
Union (+) Operator
19:41
Array Operators Coding Example
20:07
Variable Variables
24:13
Variable Variables
24:14
Coding Example
26:07
Variable Functions
28:02
Variable Functions
28:03
Coding Example
29:13
Loading...
This is a quick preview of the lesson. For full access, please Log In or Sign up.
For more information, please see full course syllabus of Introduction to PHP
Bookmark & Share Embed

Share this knowledge with your friends!

Copy & Paste this embed code into your website’s HTML

Please ensure that your website editor is in text mode when you paste the code.
(In Wordpress, the mode button is on the top right corner.)
  ×
  • - Allow users to view the embedded video in full-size.
Since this lesson is not free, only the preview will appear on your website.
  • Discussion

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (3)

0 answers

Post by Andrew Showalter on February 13, 2013

Try a different browser.

1 answer

Last reply by: Matthew M.
Tue Feb 7, 2012 3:46 AM

Post by Massimo Raimondi on January 22, 2012

FYI, this exercise is misleading... it says if the number generated is EVEN output the number, if it is ODD then DO NOT output the number. meanwhile in the homework solutions it is the complete opposite...

as per the homework solutions this is what is outputted:


$randNum = 9
$randNum = 1
$randNum = 9
$randNum = 1
Because the do-while loop has exited, the number 5 has been generated.

More on Conditional Loops

  • A do-while loop functions exactly as a while loop except that its test condition is evaluated each time after its statement group is executed.
  • A continue statement is used to skip the remaining code in a loop and re-evaluate the loop’s test condition.
  • A break statement can also be used in while or do-while loops to immediately halt the execution of the loop.
  • Conditional loops whose test condition never evaluates to FALSE or never executes a break statement will loop indefinitely. This condition is known as an infinite loop .
  • Some common pitfalls when using conditional loops are:
    • counter initialization occurring within the loop
    • not incrementing a loop counter within the loop
    • having a necessary break statement be unreachable
  • Additional Resources:

More on Conditional Loops

Lecture Slides are screen-captured images of important points in the lecture. Students can download and print out these lecture slide images to do practice problems as well as take notes while watching the lecture.

  • Intro 0:00
  • Lesson Overview 0:08
    • Lesson Overview
  • do-while Loop 0:42
    • do-while Loop
    • Simple do-while Loop Example
    • Another do-while Loop Example
  • continue Statement 10:46
    • continue Statement
    • For Example
    • continue Statement Coding Example
  • break Statement Re-Visited 18:10
    • break Statement Re-Visited
    • break Statement In while Loops Example
  • Infinite Loops 23:26
    • Infinite Loops
    • Coding Example
  • Common Loop Pitfalls 25:59
    • Counter Initialization Occurs in Loop
    • Counter Not Incremented in Loop
    • Unreachable Break Statement
  • Coding Conventions 33:48
    • Do-while Statements Coding Conventions
  • Homework Challenge 34:28
    • Homework Challenge

Transcription: More on Conditional Loops

Hello again, and welcome back to Educator.com's Introduction to PHP course.0000

In today's lesson, we are going to be continuing our discussion of conditional loops.0004

Specifically, we are going to be introducing a new style of conditional loops known as a do-while loop.0010

We are going to be talking about both the continue statement and revisiting the break statement,0017

and seeing how they apply for loops, including the while and the do-while loop.0024

We are going to talk about infinite loops and some common pitfalls that occur in creating infinite loops.0029

And we are going to talk about what infinite loops are.0036

And then, we are going to talk about coding conventions as they apply to the do-while loop.0038

So, the do-while loop essentially functions the same way as a while loop does.0044

The only difference is that, before entering a do-while loop for the first time, the test condition doesn't get evaluated.0049

In a do-while loop, as you can see down here, the test condition is at the bottom of the do-while loop, and it uses the same while keyword.0056

What happens when you enter a do-while loop: open entering, you execute the statement group within the do curly braces.0068

Then, after you have executed that, you evaluate the test condition specified here in the while statement.0078

If the test condition is still true, you continue, and you go ahead and evaluate the loop again.0086

The difference between this and the while loop is that the test condition is evaluated after the loop is run, as opposed to at the beginning.0091

What that implies is that, in a do-while loop, its statement group is always going to get executed at least once,0099

meaning you will always work through this group at least one time before you evaluate the test condition.0105

So, let's go ahead (let's erase this) and take a look at a script that makes use of the do-while loop.0113

Here is an extremely simple example: within the do statement group, we simply have an echo statement that says "in the do-while statement group."0121

So, when you enter this do-while loop, what you are going to do is go ahead and always execute the statements within the loop first.0133

Then, you are going to evaluate the test condition to see whether you should evaluate it again.0142

And in this case, for our while test condition, we have it set equal to false.0147

That, because the literal value is false, is always going to evaluate to false.0152

So, in this case, this do statement in the do statement group is only going to get executed once.0155

For example, if we go and run this file, we can see that "in the do-while statement group"--that string was only output one time.0160

Now, this is in contrast to...let's say we switch this around from a do loop to a while loop...0172

The do-while loop always has the statement group executed once; however,0182

a while loop only has its statement executed if the condition is true on its initial run.0191

So, when we go ahead and run this script while false, the test condition false is always going to evaluate to false,0197

so this while loop is actually never going to get executed.0203

So, when we go ahead and refresh the page (looks like we had an extra curly brace), we are going to see that nothing gets output.0207

That is because this while loop never actually gets entered.0218

Now, one other thing to note about the syntax of the do-while loop is that0224

the while keyword and its test condition come after the closing brace of the do statement group.0229

And then, also, you need to notice that there has to be a semicolon after the test condition for a while loop.0238

This really is an example of a do-while loop that doesn't do too much.0244

So, we'll create another example here that does something a little more interesting.0248

And it demonstrates an example of when you would use a do-while loop.0262

Because do-while loops always execute at least once, you use it in scenarios where you want something to be done once,0266

and then if it doesn't work (the test condition evaluates, maybe, to false still) you continue to do it until things happen.0271

Well, a common thing in computer programming is: sometimes, if you have a server running, you need to bind to a particular port.0278

And so, what you do is: in your server application, you try to bind to a specific port.0285

And not all ports are available, so if you are successful with binding your particular port, let's say, your operation is done.0290

However, if you try to bind to (let's say) port 500, and you use some outside function to do that, and it returns false,0298

saying that you can't bind to that port, then you need to try again.0305

So, this is a perfect example of where we could use a do-while loop.0308

I have created this little mock function that might be used to bind to a particular port.0312

Basically, it takes one parameter that is an integer variable, and what it does is: if the value provided is greater than 10 and less than 900320

(so if it's between 10 and 90), then it is going to return the value that you passed in, which essentially is saying that it was successful.0332

If it is less than 10 or greater than 90, it is going to return null, which implies that it wasn't successful in binding to the port.0342

Now, a real network application would have more advanced stuff going on here,0351

but this is just a mock function to allow us to explore the do-while loop.0355

So basically, I'm going to create a variable outside of the do-while loop called randPort...excuse me, called boundPort.0361

I'm just going to set it equal to null to start off with.0378

And then, the way we are going to manage the do-while loop to exit out of it is by using a boolean flag.0381

We are going to say "isBoundTo," which means if the port was bound to it, then we are not going to execute the loop anymore.0388

We are going to initially set that to false.0395

Then, within our do-while loop, we are going to generate a random port number between 1 and 100,0403

and we are going to use the rand function, as we had in a previous lecture.0408

And we are going to make use of our bindToPort function that we defined down here to try and see0415

if we were able to successfully bind to a port, which would give us a condition to test.0429

So, we are going to pass it randPort, which is a randomly-generated port number between 1 and 100.0440

Now, if this function successfully binds to your port, it is going to return the integer that we pass into it.0446

It is going to return it as boundPort; if it fails, it is going to return the value null.0453

So, what we can do is: we can then create a test that says, "If boundPort is not equal to null," which means that it was successful,0459

"then we are going to go ahead and set the boolean flag isBoundTo equal to true."0473

And then, as our test condition, after we evaluate this do statement group for the first time, we are going to test if isBoundTo is true or not.0482

If isBoundTo was false (which means that this operation didn't succeed), then isBoundTo is still going to be false,0495

because that is what is was initialized to.0503

NOT false is true, so it is going to execute again.0505

However, if we were successful in binding to a port, boundPort is not going to be equal to null; isBoundTo is going to get set equal to true.0508

And then, NOT true is false, so the loop is going to exit.0515

And then, we are just going to afterwards enter a message that says "successfully bound to" and then the value of boundPort,0519

which is the variable that is returned by bindToPort.0533

So, we go ahead and run this example; we can see, it said it was successfully bound to port 27.0538

Now, what that means is: that do-while loop only had to execute one time; and we know that because...0546

Actually, one thing we should have done...I forgot to include a message that says "attempting to bind to port."0555

Actually, every time we go through the do-while loop, we are going to output a message that says,0574

"We are attempting to bind to port randPort," which is the random port we generated.0577

Then, after we have successfully bound to port, then we output a successful message.0583

So when we go ahead and reload the page, we can see, it is attempting to bind to port 33, which means it was in that do loop.0586

It succeeded on the first time, and then we output a message "successfully bound to port 33."0594

Now, if we refresh the page the second time...it worked on the first time...the third time it didn't work (and it looks like I forgot a break statement here...).0600

Because this rand function is not always going to return an integer between 10 and 90,0611

sometimes this bindToPort function is going to fail; it is going to return null.0617

And then, we have to execute the do-while loop again.0621

So, this time, when I refreshed it, it successfully bound the first time; and we'll just do it a couple of times.0623

Now it took 2 times to actually bind to port: it tried to bind to port 1, but 1 is not between 10 and 90, so it didn't succeed.0631

When it generated the random port 85, that is between 10 and 90, so it successfully was able to bind to it.0639

Now, a continue statement is something that you can use within while and do-while loops, as well as other loop that we are going to get to within the course.0648

And what it allows you to do is: when you encounter a continue statement within a loop,0656

it skips the rest of the execution of the loop and goes back and re-evaluates the test condition.0662

For example, we have this while loop here: if this continue statement is executed, instead of going on0667

and continuing the rest of the while statement group, what it does is actually0674

jumps back up to the top here and re-evaluates the test condition.0678

If that test condition is true, it goes ahead and repeats executing the statement group for the while loop.0681

So here, we have set a variable that is initially equal to 1.0691

We are going to say, "While i," this variable, "is less than or equal to 10, it is going to perform these functions."0696

And at the end, we are going to increment it; so it is going to go through this loop 10 times.0701

And we are only going to output the value of i (which can be considered a counter) if it is an odd number.0706

The way we can do that is using the modulus operator.0714

We know, if you remember from the modulus operator, that it returns the remainder of integer division.0718

So, if we divide i by 2, and the remainder is equal to 0, that means it is an even number.0724

And because it is an even number, we don't want to output it, so before we leave the loop, we increment the counter0731

so that the loop will go through one more time, and then we execute the continue function,0737

which is going to send it back up here to the beginning.0743

Every time this loop runs from the numbers 1 through 10--every time it encounters an even number--0746

it never reaches this section down here, because this statement ends up being true.0751

It hits the continue statement, and it bounces up to the top.0756

So, this loop is going to output just a string of numbers: 1, 3, 5, 7, 9.0758

Here is an example of continue in a more practical application.0768

We have defined a shopping cart, kind of like in our web application; it is a multidimensional array0774

that contains associative arrays with two keys in them, one key being price, and one key being quantity,0784

which represent the price and quantity of an item in a cart.0790

And what we are going to do is calculate the total of the cart, making use of the continue statement.0794

So, we initially define the total of the cart to be equal to 0.0798

And then, what we are going to do is, making use of the list and each functions that we had learned about,0803

we are going to loop over the cart array, which is the items in the cart.0822

And what this, again, is going to do is: every time this each function is run,0826

it is going to extract the current key and value information of where the current array cursor is.0830

So, the first time it runs, it is going to extract information about the first element.0838

In this case, if we had had a value here, we could set that equal to the key, which--because this cart is actually a numeric array--would be 0.0843

But then, we want the value, and the value is always returned from the each function with the index 1.0852

So, the value is going to be this array right here; so we are going to call that a variable item.0860

And so, every time this loop runs, each is going to return an element of the cart array, which is going to be an associative array0865

for each item that has its price and quantity.0872

Now, what we are going to do is test to see, for each time this loop occurs, if the item's quantity is 0.0876

And the reason we are going to do that is because we don't need to perform any calculations if the quantity is 0.0886

We can just continue the loop and go on to the next item in the cart to process that and see whether that needs to be added to the total.0890

So, if item quantity equals 0, we can just type the continue statement.0898

And what that is going to do is: any time an item's quantity is 0, is just going to say, "OK, I don't need to add anything to the total."0914

"I'm going to jump back to the top of the loop and get the next item."0920

Now, if the quantity is not 0 (because continue skips the rest of the loop), the remaining statements are going to get executed.0923

We want to update the cart total, so we are going to use a similar math operation as we did in our web application,0931

which was simply going to be the item's price times its quantity.0939

And then, we are just going to output a statement saying that a particular item of a certain price and quantity was added to the cart.0950

Basically, we are just saying that so many items were purchased at a certain price.0992

I'll just double-check the syntax here.1001

And then, after the loop completes, which means we have processed all of the items in the cart, we are just going to output the total.1014

Let's go ahead and run this script.1034

And what we can see, if we go back and look at our array that we had set up--we have one item in the cart with a quantity 2 at a price of $5.00.1040

We have one item in the cart that has a price $10.00, but a quantity of 0, and then one item with a quantity 1 that has 25.1050

So, if we add up this total, it is going to be 2x5 (which is 10), plus 1 item at $25, which is going to be $35.1057

So, as you can see, it says "Two items were purchased at $5; one items were purchased at $25; final cart total equals $35."1064

And so here, you can see how we use the continue statement to avoid running this calculation,1070

and also outputting this echo statement that says a particular item is purchased,1076

because you wouldn't need to output, in this case, "0 items were purchased."1080

You don't need to output that, so using the continue statement is a way to avoid doing that.1085

So now, we are going to talk about something we have talked about before when it came to the switch statement, which is the break statement.1093

And it is something that you can use in while loops and do-while loops to halt the execution of the loop.1098

Normally, as we have known do-while loops and while loops, their execution stops when their while condition evaluates to false.1106

Well, with the break statement, you actually can break out of the loop without having to have the while condition evaluate to false.1114

And what happens when you encounter a break statement: just like in a switch statement,1124

the loop is going to exit immediately after a break statement is executed.1127

And what that means is that, once you hit a break statement (kind of like when we hit continue--1133

it doesn't execute anything else in the end of the statement; it jumps back up to the top)...1137

the difference is that, when you hit a break statement, it doesn't hit the rest of the loop.1140

But it jumps to the bottom of the loop, to whatever statement follows the loop.1145

The one thing to note is that, even in a while statement, let's say you have a boolean flag that we have been using,1152

and we set it equal to false somewhere within the middle of the loop.1158

Even though it is false (which is going to eventually make the test condition equal to false, which means the loop is going to stop),1162

everything below it still gets executed--all of the statements.1169

However, once you hit a break statement, it is like immediately saying that the test condition is false, and you jump out of the loop.1172

So, let's take a look at an example of that.1178

Here, we have a file called break.php, and what we are going to do is generate a random number each time we go through the while loop.1182

And if the number is equal to 5, we are going to break out of the loop;1192

and if not, we are going to output the number that was generated on that iteration of the loop.1195

And then, at the end, we are going to output the number of tries that it took to generate the number 5.1201

We are going to actually run this loop "forever," because we are going to run it until the break statement occurs.1210

And you will see where the break statement is going to be in a second.1217

The first thing we will do is: we are just going to increment the numTries.1219

So, when we first enter this loop, we are going to know that number of tries is going to be incremented to 1.1222

Then, we are going to generate, using our rand function, a random number between 1 and 10.1231

And then, we run our test: if the random number we generated equals 5, then we want to break out of the loop.1242

The way we do that is by using the break statement.1256

So, if we come in here, and rand generates 5 on the first try, if randNum=5, it is going to equal true.1259

We are immediately going to break out of the loop; the remaining statements of the loop are not going to be executed.1267

And then, we are going to jump out to the end.1271

However, if randNum is not equal to 5, we are going to just echo a statement saying what random number was generated during this current loop iteration.1275

So again, this break statement...once it's encountered, it jumps immediately out of the loop.1298

Unlike continue, it doesn't jump back and evaluate the test condition; it jumps to the end.1303

And in doing so, it is going to bypass this last echo statement.1307

So, if the number is equal to 5, the number 5 is actually not going to be outputted; it is not going to say "number 5 was generated."1311

It is only going to say that for numbers not equal to 5.1318

And then, at the end, we are just going to output the number of tries it took to find the number 5.1320

So, if we go ahead and run this script, we can see that it took (actually, let me make this a little more readable)...1337

Let's run it again; it is going to generate different random numbers.1360

Here, it actually took several times to generate the number 5; it took 9 tries.1364

Here, you can see, 1, 2, 3, 4, 5, 6...the first 8 times, it didn't work; and then, on the ninth time, it finally generated the number 5.1368

And so, you can see that, on the times that it didn't generate the number 5, this break statement was not executed.1381

It was only executed when num equals 5, and because of the nature of the random function,1388

this is going to operate a different number of times, depending on what the rand function generates.1391

So, next time we run it, it took three tries to generate the number 5.1398

So, that is an example of using the break statement.1402

I want to talk now, just quickly, about infinite loops.1408

And basically, what an infinite loop is, is when you have a loop sort of running out of control.1411

It is a loop where the test condition...it is never possible to set it equal to false, or it never reaches false.1415

Because we know, in the absence of a break statement, that a while loop or a do-while loop is only going to stop executing1422

once its test condition equals false, if that never happens, the loop is going to keep executing indefinitely.1429

As we just learned, there is a break statement, also, that we can use to break out of a loop.1434

So, an infinite loop occurs if either the test condition of a loop never equals false, or a break statement never happens.1437

Like in our last example, the test condition was always true; so the loop is going to loop indefinitely until the break statement occurs.1446

So, an infinite loop will occur if test condition never equals false, and if a break statement never occurs.1451

That is known as an infinite loop, because it just keeps looping over and over again, and it actually jams up the computer and stalls the program.1460

As the programmer, it is up to you to ensure that all your while loops or do-while loops end,1468

by ensuring that either a test condition will eventually equal false at some point (which is by incrementing a counter1475

that eventually is going to reach some maximum value that it says, if it is greater than this value, to exit the loop),1482

or at some point a break statement will have to be eventually executed within the loop.1491

If we go take a look at a file here called infiniteLoops, this is an example of a simple infinite loop.1498

It is a while statement where the test condition is always true, and we have no break statements in the loop,1503

and nothing that alters this test condition, because the test condition is a literal.1509

So, all it is going to do is repeat this loop over and over again.1512

It is going to say, "While true, OK, let me echo 'stuck in loop.'"1515

And then, it is going to reevaluate the test condition "while true"; that is true; it is going to echo it again.1519

So, it is just going to do it over and over again, and it is going to halt the execution of the program.1523

If we go and try to load this page, it is going to take a while to load; and eventually, the PHP just gives up.1529

But if you look, we can scroll down here and see: it just continually outputs "stuck in loop" over and over again.1538

I'm going to go ahead and stop that; that is an example of what an infinite loop is.1545

And the reason you want to avoid these is because it halts the execution of your program,1550

because your program gets stuck in this one section of code.1553

Now, some common loop pitfalls that occur, that enable an infinite loop to happen, are:1560

if you are using a counter, and you initialize the counter within the loop (which we are going to talk about in a second);1566

if you have a loop counter, but you forget to increment it each time you go through the loop;1573

or if your loop only exits upon a break statement, and your break statement is unreachable.1578

Let's take a look at each of these different scenarios.1584

I'll go ahead and delete this while loop.1588

The first one is that counter initialization occurs in a loop.1592

We have a while loop with a counter, and we say while the counter is less than 5,1597

we want to echo the counter; we want to output the value of the counter.1609

So, we are going to have a simple echo statement in here.1615

And then, on each iteration of the loop, we increment it.1625

So, when this occurs, i is going to equal 0; the first time it goes through, 0 is less than 5; OK, it is going to output 0.1629

It is going to increment it to 1, and it is going to repeat.1635

And what is going to happen is: 0 through 4 is going to be output.1638

So, if we go and look at this page now, we can see, 0, 1, 2, 3, 4 is output.1642

However, let's say we accidentally (and this is something that can happen) put the counter initialization1648

(setting it equal to 0) within the loop, instead of doing it before the while loop.1656

OK, so what is going to happen? First of all, it is going to give an error here when it says that i is undefined.1660

But let's say, actually, we had defined it out here, and we said i equals 0, so we don't get an undefined error.1669

It is going to say 0 is less than 5; and then, what it is going to do is: the first thing it does is initializes the variable i; so, it is going to set i equal to 0.1677

It is going to output 0; it is going to increment i equal to 1; it is going to go back up to the loop.1685

It is going to say, "1 is less than 5; OK, let me enter the loop," and it is going to reset the value of i equal to 1.1690

In this case, the initialization of the counter occurs at the beginning of each loop, so this loop is going to run indefinitely.1696

So, if we go ahead and run this script, we can see that it just keeps repeating "0...0..." over and over again.1702

And the reason is because, every time this loop is entered, i equals 0.1714

That is one problem that can happen...actually, that froze up the browser, and that is one of the things that can happen with infinite loops.1718

So, let's remove this; we have the counter initialization outside of the loop.1735

But let's say we forget to increment the counter during the loop.1743

What is going to happen? We have i=0 when we enter the loop; 0 is less than 5; it is going to say, "OK, I am going to echo i."1747

i is still equal to 0; when it goes back up here, it is going to say 0 is less than 5; OK, it enters the loop--it is going to output 0 again.1755

It is going to get stuck in this loop indefinitely.1761

I'll just output the title for this one.1767

This is where the counter does not get incremented in the loop, as it is supposed to be.1773

If we reload our browser...Firefox sometimes tries to reload the last pages that you had up, so let's close that tab and open a new tab.1778

I'm going to run infiniteLoops, but I am going to do it quickly and stop it.1806

We can see that, without the counter being initialized, that when this page loads, it is just going to output 0 over and over again.1810

Actually, if it even works at all...that is one of the problems with infinite loops.1823

In fact, this page isn't loading: it is saying that it is getting stuck in this infinite loop...and actually, there it goes; let me stop it.1826

It is going to say the counter was not incremented in the loop, so you keep getting 0 over and over again.1833

That is an example of that type of infinite loop.1836

And then, another common thing that happens is if you have an unreachable break statement.1839

For example, let's say you have a while loop, like we had in our last file, break.php,1852

that the test condition is always true, and it only exits on a break statement.1859

So, while true, this is going to be incremented over and over again; so let's generate a random number between 1 and 10.1875

And then, we are going to have a test condition, just like we did before.1893

If randNum=5, we are going to break out of the loop; if not, we are going to echo randNum.1896

When we run this, it is going to work just like our last program did; it is going to output random number until it reaches 5,1919

and then it is going to break out of the loop and output this statement that I had included to the outside loop.1926

However, let's say we coded incorrectly, and we made this break statement unreachable.1933

One way you could do that is: let's say we had two conditions: randNum=5 and another condition.1938

And for another condition, let's say that it always evaluates to false.1946

In this case, we will directly set the literal value to the literal value false.1950

So, we know anything "AND"-ed with false is always going to equal false; therefore, this if statement is never going to get executed,1955

so break is never going to get executed: you are going to get stuck1959

in this infinite loop, outputting random numbers over and over again.1962

If we go and reload the page again, and let it work for a little while, hopefully it will generate some output.1966

That is the problem with infinite loops.1988

So, it is stuck in this infinite loop, and because it was stuck there, it is not even generating any output.2000

The behavior becomes unpredictable, because it clogs up the computer's CPU.2006

And actually, here we go: it has the output, and you can see, it is just a bunch of randomly-generated numbers,2010

output over and over and over again, infinitely, until the computer memory runs out.2014

Those are some of the common pitfalls that will cause infinite loops to occur.2021

Just really quickly, I want to talk about coding conventions as they relate to do-while statements.2030

You have the do keyword, followed by a space, and then the opening curly brace.2036

You have the statement group for a do statement indented one indent further than the keyword.2040

And then, you have the closing curly brace on its own line, indented the same level as do.2045

And in between the closing curly brace and the while keyword, there is a space.2050

Just like in the while statement, there is a space between the while keyword and the test condition within parentheses.2055

And then, you always have the semicolon, here at the end, to signify to PHP that you are done with the do-while loop.2061

So now, just quickly, I want to go over the homework challenge for this course.2069

I would like you to create a do-while loop that generates a random number (using the rand function) between 1 and 10.2072

It does that on each iteration through the loop.2080

If the number generated is even, I want you to output the number.2083

If the number generated is odd, I don't want you to output the number; I just want you to start the loop over again.2086

If the number is 5, I want you to break out of the loop (this is the word break),2091

and then output a message stating that the number 5 had been generated.2095

And this example is going to give you practice; your solution should use both continue and break statements, which we learned about.2099

And it should have a test condition that is always equal to true.2107

What that means is that you are going to have to correctly include a break statement2110

that is reachable within your code in order to break out of that loop.2113

And in this case, the break statement is going to occur when the random number generated is equal to 5.2117

So, you need to make sure that your test condition is appropriately set up, so that that break statement will work.2122

And then, you use the continue statement to decide whether to output a number, based on whether it is odd or even.2128

And then, just verify that it works, as appropriate.2137

And remember to format your code according to the coding conventions we just talked about, as it comes to do-while loops.2140

That ends today's lesson; thank you for watching Educator.com--I look forward to seeing you next time.2146

Educator®

Please sign in to participate in this lecture discussion.

Resetting Your Password?
OR

Start Learning Now

Our free lessons will get you started (Adobe Flash® required).
Get immediate access to our entire library.

Membership Overview

  • Available 24/7. Unlimited Access to Our Entire Library.
  • Search and jump to exactly what you want to learn.
  • *Ask questions and get answers from the community and our teachers!
  • Practice questions with step-by-step solutions.
  • Download lecture slides for taking notes.
  • Track your course viewing progress.
  • Accessible anytime, anywhere with our Android and iOS apps.