Matthew M.

Matthew M.

Conditional Loop Wrap-Up

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

Start Learning Now

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

Sign up for Educator.com

Membership Overview

  • Unlimited access to our entire library of courses.
  • 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 lesson files for programming and software training practice.
  • Track your course viewing progress.
  • Download lecture slides for taking notes.
  • Learn at your own pace... anytime, anywhere!

Conditional Loop Wrap-Up

  • Any conditional loop can be nested within another as many levels deep as necessary.
  • continue statements can be used in nested loops to execute a continue on ‘outer’ loops by specifying how many levels of loops to run continue on.
  • break statements can be used in nested loops to break out of ‘outer’ loops by specifying how many levels of loops to break out of.
  • Additional Resources:

Conditional Loop Wrap-Up

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:09
    • Lesson Overview
  • Nested Conditional Loops 0:39
    • Nested Conditional Loops
    • Coding Example
  • continue & break Re-Visited 5:17
    • Continue Statements and Coding Example
    • Break Statements and Coding Example
  • Loop Debugging Tips 15:16
    • Add Short Debug Statement At the Very Beginning
    • Output a Counter Variable
    • Add Debug Statement At the Very End
  • Homework Challenge 20:20
    • Homework Challenge
  • Homework Challenge (cont.) 22:00
    • Homework Challenge (cont.)

Transcription: Conditional Loop Wrap-Up

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

In today's lesson, we are going to be wrapping up our discussion of conditional loops.0005

First, we are going to be talking about nested conditional loops, just as we have talked about nested conditional control structures.0011

You can do that with loops, as well.0019

We are going to revisit the break and continue statements, as they relate to nested conditional loops,0021

because they are a little different application when loops are nested.0031

And then, we are also going to go over some loop debugging tips, because loops can sometimes be tricky to get them to work right.0034

So, first of all, any conditional loop can be nested within another conditional loop, just as was the case with our conditional control structures, like if.0042

One of the common uses for nesting conditional loops is to loop over multidimensional arrays,0052

because that allows you , in the outer loop, to iterate over one dimension of the array;0061

and then in this inner loop, you will iterate over the second dimension of the array.0067

Let's take a look at that in an example.0071

This is a file called nestedLoops.php, and we have created an array here called matrix.0074

It is a multidimensional array; it is supposed to represent a 3x3 matrix.0081

And the outer array is a numerically-indexed array that contains three arrays, each of which is a numerically indexed array0086

that contains three elements, which are just the strings...for the first array (used to represent the first row of the matrix),0097

1a, 1b, 1c; 2a, 2b, 2c for the second row; and so forth.0104

And all we are going to do, to practice with the nested loops, is to iterate over this array and output each row.0109

The way we do that is: the first thing we are going to do is iterate over the outer array, which is going to be matrix itself.0117

And we are not using a foreach loop here, even though we are iterating over an array,0127

because I want to talk a little bit about using counter variables in nested loops.0132

And I will get to that in a second; but basically, this foreach loop right here loops over the outer array, which is the matrix variable.0138

And once it iterates each time on the matrix array, we are going to set a variable called row equal to whatever value we are on as we iterate through the array.0150

So, the first time through, row is going to equal this array here; the second time through, it is going to equal the second array; and so forth.0164

And the way we access that is by using the counter variable to get access into this indexed array.0170

Then, what we are going to do is, using a while loop (and this is to show how you can nest different loops within other loops),0180

we are going to loop over the row array, because each element of matrix is an array itself.0187

And we are going to loop over each row array and output each of its different values.0195

So, what this does is: we set up a counter, 0, and this is our test condition to make sure that we are not looping past the end of the array.0202

We increment the loop counter at the end of each while loop, and then the content of the loop is0213

that we are just going to output each row value, followed by a space.0217

Now, here we are also iterating over arrays, so typically you would use a foreach statement for that.0221

The reason is just to show that you will often see, especially when iterating over multidimensional arrays, several levels of nested loops.0228

And it is common in the outer array, when you have a purpose for using the counters and wouldn't be using a foreach loop,0236

that the outer array (and this is kind of a convention that is used)--the counter is called i.0243

And then, for the next loop nested within that one, the counter is called j; and then, if you have a third one, it is called k.0247

And so, it's i, j, and k; and that is a common convention.0257

I just wanted to explain it to you: you will see that a lot--that when you have multiple conditional loops nested within one another0260

that have counters, the common convention is to name them i, j, and k.0268

And you typically don't see more than three loops nested together at the same time.0272

If we go ahead and run this script, nestedLoops.php, we can see that what it does is: it goes through and, in the outer loop,0277

it pulls out each row of the array, or each row of our matrix, and then loops over that array, outputting each of the values in it.0288

So here, we can see all of the values in that first array, which is the first element of matrix.0297

And then, you can see that it has done the same for the second element of matrix and the third element of matrix.0306

And so, that is one way that you can use nested loops to loop over a multidimensional array.0312

Now that we have talked about how there can be nested loops, there is a variation0322

that you can use on the continue statement, and the break statement, as well.0327

First, we are going to talk about the continue statement.0331

And because continue, as we know, says, when you encounter it within a loop, "Skip to the end of the loop and start the loop over again;0333

re-evaluate the test condition"; well, if you have nested loops, you can specify the number of loops which you want to continue on.0343

So, if you are inside the inner loop of an outer loop, for example, you can specify continue 2, with the integer 2, which says,0350

"I don't want you to just continue on the current loop, but I also want you to continue on the outer loop, as well."0358

That will make a little more sense when we look at an example; and you can use that for as many levels deep as you have.0363

So, if you had four loops nested within one another, on the inner for loop, you could type continue 4.0368

And that would say, "Go all the way back to the outer loop and begin looping over that one again."0374

So, let's take a look at a file called nestedContinue.php.0381

It contains an array called numbers, which is an indexed array containing three indexed arrays, each of which contains a couple of random integer variables.0384

And what we are going to do is loop over the numbers array, extracting on each iteration the value of each element, which is going to be an array itself.0395

And we are using here, instead of the foreach statement, the for statement, for formatting reasons.0408

I want to output breaks after each row, and so what I do is: I don't want to do that for the first row, so I use the counter variable0417

to see if you are at the first iteration of the loop ("do not echo the break statement").0428

And so, that is why I have used the counter loop here, even though we are iterating over an array.0436

What this does is iterates over numbers, and then we define a variable, numberSet,0441

which we set equal to whatever array it is currently being looped over,0447

in whatever element is currently being looped over numbers, which is an indexed array itself.0452

And then, for each number set, or each array that we have here, we are going to loop over that.0458

And here, we are using the foreach statement, and we are saying, "As we loop over numbers set, I want you to pull out the value0463

and set the variable currNum equal to that value."0470

So, as (for example) the inner loop iterates over this first array, currNum is going to get set to 1 the first time around.0475

It is going to get set to 2; it is going to get set to 3.0482

And what we are doing here is: inside this inner loop, we are going to output the current number, unless...0485

if the current number that is in the array is greater than 10, we are going to use the statement continue 2.0493

And what that means is to quit outputting numbers for this current row and go back up to the outer loop (which says to pull up the next row).0500

So, what it is going to do as this functionality occurs: it is going to first loop over numbers; it is going to pull out the array that has 1, 2, 3.0512

And then, in this inner loop, none of these numbers equal 10, so it is going to output them all.0523

Then, on the second iteration of the outer loop, it is going to load this array into the variable numberSet.0527

Now, when it goes to iterate over this and output it, it is going to find that that first number is greater than 10.0532

So, what it is going to do is execute the continue 2 statement, which means, instead of continuing foreach0540

and going ahead and outputting the rest of this array, it is going to say "skip to the outer loop and continue."0545

So, it is going to skip and then begin outputting this next row.0551

Now, the next row--the inner loop is going to do the same thing: it is going to output all of the numbers, until it finds a number greater than 10.0555

And if it does, it is going to continue on the outer loop, because when it continues on the outer loop, after this third array,0561

there are no elements in the array left; we just jump to the end down here.0570

If we go ahead and run this script, nestedContinue.php, (and this is our array that we have here:0574

this is just an outputted form of the array, so that we can look at it when we are analyzing the output),0584

we can see that the first row is completely output: 1, 2, and 3.0591

Now, the second row actually is a blank line: nothing gets output, because the first number it reaches is the number 100, which is greater than 10.0594

So, what it is going to do is jump back out to the outer loop, move on to the next row, and start outputting the numbers in that row.0602

In this case, it gets to 6; it gets to 5; then, when it reaches 11, it hits that continue statement again and jumps out to the outer loop.0609

There is no more; so 11 doesn't get printed out; 4 doesn't get printed out; and that is the end of this numbers array, so that is all the output that happens.0618

Then, notice the difference between that and if we just had a regular continue statement.0625

The regular continue statement is the same thing as if you did continue 0 or continue 1; but the way you will always see it is just a continue statement.0630

Now, what this is going to say is: as you are going through each row of this numbers array, if you encounter a number greater than 10,0638

rather than continuing on to the next row, just continue on this loop right here,0646

which is going to say, "Just continue on to the next number."0651

So, in this case, when it reaches 100, instead of jumping to the next row and beginning to output that,0653

it is going to output 7 and 3, and then when it reaches 11 in this row, it is going to continue the loop and output 4.0658

If we save this file and reload it, we can see that that is what happens.0666

It outputs all three numbers in the first row; in the second row, it skips over 100, but instead of skipping to the next row,0671

it goes ahead and just continues in that inner loop; it outputs 7 and 3.0677

And then, the same thing happens in the last row: it outputs 6 and 5, and then skips over 11 and outputs the number 4.0681

So, that is how you can use continue in nested loops to jump out or to continue multiple loop levels.0688

Likewise, the break statement works in a similar way with nested loops, in that, when you have nested loops,0695

you can specify break 2, break 3...and that has the same functionality as break, but instead of breaking0700

out of the current loop that you are in, if you say break 2, it is going to say "I want you to break out of the second loop from where I'm at."0707

So, if you have an outer loop and an inner loop, and you are in the inner loop, and you hit break 2,0713

it is going to jump out of both of the loops altogether and jump to the end.0717

The way you do that is: you specify how many levels you want to break out of.0721

And that could be as many as you need it to be, because you can nest loops indefinitely, or as much as you need to, within PHP.0726

If we go and look at a file called nestedBreak, we have the same thing here.0735

We have the numbers array, except we have replaced the second number in the second row with the value null.0740

Again, we are going to loop over this numbers array, each time setting the variable numberSet equal to0748

the value of the numbers array that is currently being iterated over, which is an array itself.0759

We have used the counter here again, for formatting reasons: we want to test if it's the first row that we are outputting.0765

Then, the change down here is that we are going to loop over each row, each number set (which would be like 1, 2, 3, 100, null, 3),0774

but instead of our (actually this is incorrect...a typo) testing to see if the number is greater than 10,0785

we are going to test if we encounter the value null.0796

If we encounter the value null, then we are just going to break out of all loops altogether.0799

And because we hit break 2 here, instead of...if we had just done break, we would have just quit looping over this row0802

(in this case, it would be the second row) and then moved on to the third...we are going to break out of everything altogether.0811

So, as soon as we hit this null, we are jumping out of both loops, and we are going to stop.0816

So, 100 will be the last number that is going to be output.0820

If we go ahead and run this script, nestedBreak, we can see that what happens is: it outputs 1, 2, and 3 right here, in the first row.0824

Then, it reaches 100, and then afterwards, it hits null.0835

And instead of continuing...not only on this row, but not on this row either...it breaks out of both loops.0839

It just completely jumps out of the loop, because we specified break 2; the last number output is 100.0844

And the break works the same way as continue; you could specify break 0 or break 1; those are both the same meaning as just the break keyword itself.0853

Now, what is going to happen here is: we just have a single break--it is not going to break out of two loops.0862

So, any time we encounter null (for example, in this second row), instead of breaking out of both loops,0869

we are just going to break out of the inner loop.0875

So, we are going to reach null, and we are going to stop processing this row and jump out to the next one.0877

So, instead of completely quitting iterating over this numbers array, we are going to jump to the next row.0882

And we will see how that change looks.0889

You can see, what happens is: it output the first row; it started to output the second row.0893

When it hit null, instead of breaking out of both loops, it just broke out of the inner loop, which was the output of this row.0897

It moved on to the next row, and then it went ahead and output all of those.0903

That is how you can see how to use the break statement in nested loops to jump out of multiple loops.0907

Now, I just want to talk about some loop debugging tips, because loops can sometimes be tricky to debug.0917

And one tip is similar to what we used for debugging our conditional statements, where at the beginning of each if statement,0922

for example, we would say "within if" and have a little short debug message0930

that lets us know that we entered that particular section of code.0935

One thing that you can do is put a short debug statement at the beginning of all of your loops.0938

And that will let you know every time you enter that loop; so, if you know that, for example, you have a loop0944

that you know is supposed to iterate 10 times, or you expect to iterate 10 times,0949

and you have a debug statement at the beginning of that loop, that debug statement should be output 10 times,0953

letting you know that you entered that loop 10 times.0958

If it is not, that gives you a signal and a clue to figure out where your problems may be.0959

If we take a look at a script called loopDebug.php, we have the same array that we had in our last file.0965

It is this multidimensional array, and it has the same functionality that we just had, where it is going to break out if it hits a null value.0972

The difference is that we just added some debug statements.0982

So, at the beginning of the outer for loop, we had a debug statement that says "enter the outer loop."0985

And then, every time we loop through and enter the inner loop, we are going to say "debug: enter inner loop."0990

So, if we run this script, we can see our debug statements.0996

And we are going to see that they match up with what we expect.1005

First of all, we see the first one that it encounters is "enter outer loop."1008

That makes sense: the first thing we are doing is entering that outer loop to start iterating over the numbers array.1012

Then, we are entering the inner loop, which means we are iterating over this second-level array.1018

Then, we have output the number 1, and after we have output the number 1, we continue to iterate over that second array, or that inner array.1025

We output the number 2; then we enter the loop again to output the number 3.1033

Once we output the number 3, this inner loop is going to quit,1040

because the condition is going to be met that you have reached the number of elements in that array.1044

So, that is going to stop and jump to the outer loop.1054

So, the next thing you are going to see is that you have entered the outer loop again; so we know that we have entered the outer loop.1057

Then, we enter the inner loop, and we output 100, which is the first one.1061

We go ahead and try to enter the inner loop again, but what is going to happen is: the second time we enter it,1066

we are going to reach this break statement that is going to happen because this is going to be equal to null,1073

because the second value in that array is equal to null.1078

So, we are going to break out of it and break out of all the loops altogether.1081

And you can see that entering that loop is the last thing that gets output.1084

One other thing that you can do that adds a little more information that can help you out is output the counter variable1092

within your debug statement to give you a little more information about what iteration of the loop you are in.1100

And as you can see here, we have the counter variable for this outer loop.1106

Also, for this inner loop, I have changed it from a foreach loop to a for loop, so we have this counter variable j.1111

And I am just going to append to the debug statement we currently have, and just say, "counter=" and then output the value of the counter.1117

Same thing down here, except the counter value is j.1134

Now, if we go and refresh the page, we can see a little more information.1142

We can see, "OK, we are entering the outer loop; at this point, the counter is equal to 0."1146

"We enter the inner loop now; the counter is equal to 0; we output the number 1; we enter the inner loop again; now the counter is 1."1150

So, it provides us a little more information about the loop.1157

And then, finally, the last thing--another thing you can do--is add another debug statement to the end of each loop1162

to make it even clearer when you are exiting a particular loop.1167

I have already had those statements here at the end of the for loop: every time we exit out of it, I just have a statement1173

that says "end inner loop," and then a statement that says "end outer loop" every time we exit the outer loop.1178

Again, it just adds a little more information: it may be a little overkill, depending on the circumstance.1185

But this is just showing you some of the tools that you have available to yourself as a programmer to try and debug your loops.1189

And so, you can see here, it enters the outer loop; then it enters the inner loop and prints out the number 1, and then it is exiting the inner loop.1197

And then it enters the inner loop again and exits the inner loop, and so forth.1205

And it does so--those statements just trace how your script is flowing through all of the different loops in your script.1208

And so, those are some useful debugging techniques.1217

For the homework challenge, I want you to define a multidimensional indexed array called matrix.1221

And I want you to use a while loop, nested within a for loop, to populate the matrix with three indexed arrays.1228

It is going to look just like the matrix we had in our examples.1235

It is going to be an indexed array; it is going to be called matrix; and it is going to have three arrays within it as its values.1242

And then, in each of those arrays, I want you to add the numbers 1 through 3.1250

It is going to be an array filled with three arrays, each containing the numbers 1, 2, and 3.1254

Then, I want you to use two for loops to iterate over this matrix that you have created, outputting the values in each array in matrix.1259

For each row of that matrix array, I want you to output all of the values (1, 2, and 3 for each row).1270

However, I want you to prepend each number that you output with the row number and a dash.1277

For example, when you are iterating over matrix, and you are outputting the numbers in that first array1283

(which would be 1, 2, and 3), I want you to prepend the 1- to each of the different outputs.1290

And then, when you are on the second row, you output 2-.1297

And so, your output should look like this right here.1300

That is the desired output; so if you run your function, that is the output that you should get.1307

The next thing I want you to do is to change the number 2 in your second row to null.1311

This second one is going to become null, and what that is going to do is: we are going to get some practice with the continue and break statements.1316

So, using any conditional loops that you wish, I want you to output each row of matrix, just as we did in step 3,1326

except that when you reach the null value in row 2, I want you to break out of both loops.1334

And so, that is going to give you experience with using the break statement to break out of multiple loops at the same time.1339

Run the script and verify that as soon as you get to the second element on row 21345

(which is going to be the value null), that you jump out and your output halts.1351

Then, change the loops so that, instead, when you reach the null value in row 2--instead of completely jumping out of both the loops1356

and quitting output altogether, you just skip outputting the current row and move on to the next row.1364

When you run your script again, you should verify that rows 1 and 3 are completely output.1370

But then, row 2 only has the value 2-1, because when you reach 2-2, it doesn't exist anymore.1375

It is the value null, and you skip to the next row.1381

And that is going to give you experience with using the continue statement.1383

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

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.