Matthew M.

Matthew M.

Web Application Development

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

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (1)

0 answers

Post by dave smith on August 11, 2015

Professor Matthew Machaj is a genius!

Web Application Development

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:10
    • Lesson Overview
  • Version 13.0 Changelog 0:48
    • Updating 'viewCart.php' and calcCartTotal()
    • Creating isValidCart()
    • Adding Three New Item to the Store & Links
  • Version 13.1 Changelog 17:20
    • Updating outputItemLink() to Remove Its Global Dependency on $itemCatalog
  • Homework Challenge 20:34
    • Homework Challenge

Transcription: Web Application Development

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

In today's lesson, we are going to be continuing development of our web application, incorporating what we learned about while loops.0004

We are going to go through two different versions of the application today0012

We are going to do version 13.0, in which we are going to make use of while loops to reduce some of the static coding in our file,0014

which means, right now, in some of our scripts and functions, we have values that are hard-coded in there.0023

And what we are going to use is while loops to iterate over arrays, so that we can do things more dynamically.0027

We will see more about that as the lesson goes on.0034

And then, in version 13.1, we are just going to be making a small improvement to our application,0037

where we are going to be removing a global dependency that our outputItemLink function currently has.0042

In version 13.0, the first change that we make is to viewCart.php.0050

And what we are going to do is make use of viewCart.php, which is what displays our shopping cart to all of the users.0057

And right now, we have, inside the HTML file for our viewCart.php, hard-coded the output for each item.0063

So, for every item that we have in the store, we have created an HTML segment that outputs that information.0071

For example, we look at viewCart.php as it stands (and this is the last version, 12.0).0079

You can see that we have a section here of HTML for each item.0085

For item-1001, for example, this is the section we have; and we have the same exact section repeated down here for item-1002,0091

and then 1003, the only difference being that, in each section, we changed the item ID.0098

Any time we see the same code being reused over and over, we want to take advantage of the programming language's functionality0106

to eliminate that redundancy and reduce the number of errors that are possible.0114

What we are going to do is have this page use a while loop.0119

And what it is going to do is iterate over the itemCatalog array, which is in catalog.php, and output a row for each item that is in the catalog.0124

What that means is: any time we update the item catalog (we add a new item, for example),0133

then when we go to viewCart.php, it is automatically going to add a row for that in the shopping cart,0137

as opposed to right now--if we added a fourth item to the cart, for example, we would have to copy this whole section,0142

and then paste it further down the page, and so forth.0148

So, we are going to eliminate that.0153

The other thing that we are going to take advantage of a while loop for is in calcCartTotal,0155

which is our function that calculates the shopping cart total.0160

And currently, right now, if we go and look at it (and it's in utilLIB.php--this is version 12.0), similar to what we had in viewCart.php,0163

where we had an HTML section that is hard-coded for each item in the store, you can see that, for each item, we have a hard-coded calculation.0175

So, for item-1001, we have this calculation here.0185

Now, if we wanted to add a fourth item to the store, for example, we have to go ahead and go to our calcCartTotal function,0189

add another whole line, and put 1004, for example, in there.0197

Obviously, this is not a very scalable solution, because if we have thousands of items in our store, every time we want one,0202

we don't want to have to go to the code and alter our PHP code.0208

So, what we can do is: we are going to incorporate a while loop in this function, and the while loop is going to0212

allow us to dynamically calculate the shopping cart total, based on whatever items are in the item catalog at that time.0217

So, it is going to loop over all of the items that are in the shopping cart and dynamically add them up.0226

So, if we have a store with 5 items that are in the shopping cart, it will go ahead and add them all up0235

without having to actually hard-code all of the item numbers in there.0241

Let's go and take a look back at the viewCart example.0245

As we said, for viewCart, we have a different section for each item.0248

This is version 12.0; well, if we look at version 13.0, scroll to the beginning and scroll back down, this is the same section for outputting the item rows.0253

And as you can see down here, we have the submit button for the form.0266

So, instead of having three different sections of HTML code (one for each item), we have one section of code.0270

It uses a while loop to loop over all of the items in the itemCatalog array.0276

And this common code that we had for each item that we were outputting a row for is incorporated in this while loop.0280

And so, what it is going to do is: as it iterates over itemCatalog, it is going to dynamically generate a row for each item.0288

As you can see up here, just as a review, we are using the list construct and the each function.0296

And again, the each function, when it is supplied an array--what it does is returns an array.0301

And at the 0 index of that array is the key of the current array element in itemCatalog in this example.0310

So, currentItemID is going to get set to the key of itemCatalog.0316

If we look at itemCatalog, the array, the keys to that array are the item ID's.0321

The values of that array are associative arrays that contain the items' information, such as its name, its price, its image file extension, and so forth.0327

Because that is the value of the elements in itemCatalog, the second item that is specified--the list is going to get set to that value.0336

So, in currItem, we are going to be storing the associative array with the current item's information.0344

We can use currItemID and this currItem variable in the code below to do what we had done before in the last version,0349

in that we are going to output the item link; we are going to output the price; and then, we are going to output a box for the quantity.0359

Now, the one change here is: aside from changing the while loop, the code changed a little bit inside here for the price,0365

because in version 12.0, for the price, we manually accessed the global variable itemCatalog,0373

looked up the current item by its item ID, and then accessed its price.0382

However, in our new version of viewCart.php, we have already loaded up the information about the current item0387

when we were iterating over this itemCatalog array.0394

So, rather than go ahead and access that global variable again, we are just going to take advantage of the currItem variable0398

that we have already created in this while statement, and we are going to use that to output the price.0404

So, this is going to do the same thing as before: the Shopping Cart page is going to look0410

the same as it did in the last version, except now it is being dynamically generated.0415

And what we are going to see in a little bit is: I am going to increase the size of the catalog and add a few more items,0419

and we are going to see how this page is going to automatically add rows for those items,0424

without us having to go and hard-code new HTML sections for each item.0427

Similarly (and let me erase what we had added here), in calcCartTotal, our cart total calculation function,0434

this is the version 12.0; in our new version, we are going to make use of the while loop.0444

If I scroll up to where that is...basically, what we have done is replaced each of those hard-coded subtotal addition statements.0449

And what we have done is created a while loop that is going to iterate over the cartItems array, which is passed into the calcCartTotal function.0459

And as we know, in the cartItems array, the keys of that array are the item ID's,0467

and the values associated with those keys are the quantities the user selected in the cart.0472

So, when we loop over that array, we are going to pull the key out, which is going to be the item ID, which we are going to store in the variable itemID.0477

We are going to pull out the quantity, which is the value of each item in this array.0484

And we are going to store that in this variable itemQty.0488

And then, what we are going to do is: we are going to test to see if itemQty is equal to 0.0492

If it is, we are going to make use of our continue statement, because if the item quantity is equal to 0, we don't need to perform any calculations.0496

There is nothing to add to the subtotal.0502

And as we learned about continue, that just means the loop is going to start over again.0504

It is going to pull the next item from the cartItems array and try to calculate it.0507

For items that do have quantities over 0, this is going to return false; so it will go down here and execute this statement,0511

which is a parameterized version of all of these hard-coded addition statements that we had in our last function.0519

So here, we have had three different statements for three different items.0530

Here, we dynamically use the item ID that we extract from cartItems and the itemQty, so that, on each iteration of the loop,0533

it is going to add to the subtotal the quantity related to any item that is in the cart.0542

And so, in this case, we can have as many items in the cart as we want, and we don't have to update this function with a new line0550

that says, "OK, now add the price for item 4."0555

The other thing that we have done in this version is: we are going to make use of while loops in a function called isValidCart.0564

In our last version of checkout.php, when we validate the cart, our validation scheme is a simple validation.0572

We are just saying, "As long as one item in the cart has a quantity greater than 0,0581

then we are going to say that the cart is valid and continue to calculate the cart total."0585

What we can do is: if you see right here, we have a hard-coded boolean expression for each item that is in the cart.0591

So again, if (let's say) we add a fourth item to the store (let's say it's 1004, we are going to have to add another whole boolean test down here.0602

And again, this is not going to be scalable, because every time we add an item to the store, we are going to have to change that.0617

What we can do instead is replace all of this with a function called isValidCart.0623

And if we look at the new version of checkout.php in version 13.0, we can see, we replace that boolean expression with isValidCart;0627

we pass to it all of the items in the cart, which is in this associative array cartItems.0635

It is going to return true or false: it is going to return true if any of the items are greater than 0.0639

And in this new function, we are going to make use of a while statement0644

so that we can loop over any items that are in the cart, not just those three that we have hard-coded.0647

So, if we go and look at utilLIB.php, we have added this new function isValidCart that takes the associative array cartItems.0654

Again, how the function works is: if any item in the cart has a quantity greater than 0, then the cart is considered valid.0669

So initially, we create a boolean flag called isValid, and we set it equal to false: we say the cart is not valid.0675

Then, what we do is loop over all of the items in the cart by looping over the cartItems array.0681

And if any of those items has a quantity greater than 0, then we update our boolean flag to true, because the cart becomes valid,0688

so that, when we return isValid, the checkout.php is going to know that the cart is valid.0695

And as you can see up here again, we have used the list construct and the each function to loop over this cartItems array.0702

And because, as far as cart items, the key is the item ID, and the values in that array are the quantities,0709

and all we are really interested in is the quantities, we don't need to set a value that would extract the key from cartItems0715

when we are looping over the cartItems array, because we don't the item ID; all we need is the quantity.0725

So here, you can see where we have used the syntax where you leave that first item blank.0730

So, instead of maybe having itemID here (which we don't need in this code down here), we just need itemQty.0733

The syntax for leaving that out and making sure itemQty gets set to the value is to just put a comma there, with no value.0740

And so, that is how isValidCart works.0749

Now, what that is going to do is: if we add items to our store, or add items to our catalog, now our viewCart.php is going to0751

automatically add a row for each item that is in the store.0759

When the user submits the cart, this function--this validation function--is going to loop over all of those new items0763

to see if any of them have a quantity greater than 0.0768

Let's take a look at how this works in action.0772

Right now, we have a shopping cart, and if we submit it without adding any items to the cart--all quantity 0--0778

and we hit Checkout, we are going to get an error saying "you need to add at least one item to your cart."0783

Right now, we have three items in our cart.0789

This table, as we just learned, is now created dynamically be iterating over the cartItems array.0792

When we submit the checkout form, the isValidCart function is running by dynamically looping over all of the items submitted on the cart.0799

Additionally, when we calculate the cart total, if we go ahead and (let's say) put a quantity 1 here,0808

calcCartTotal is going to be run, and it is going to loop over all of the items that were submitted in the shopping cart.0814

And for any that have a quantity greater than 0, it is going to add that to the subtotal.0818

So here, we get $16.50 as our total.0822

That is how it works: now, let's go and add three more items to the store.0826

Our current catalog.php has three items in the store: 1001, 1002, 1003.0836

Well, I have gone and created an updated version that we are going to set catalog.php to, and this version has six items in the store.0844

And what we are going to see is: just by updating this catalog.php, and updating this itemCatalog array,0853

our shopping cart is automatically going to be able to add rows for all of those new items.0860

We are going to be able to validate the shopping cart for all of those new items added,0864

and we are going to be able to calculate the total for all of those new items that were added.0870

I'll just close these down; what I'll do is go ahead and rename the old catalog and set the new one to just catalog.php, so it will actually get read.0874

Now, when we go and reload our Shopping Cart page, I think it's pretty impressive: just by hitting refresh,0896

we can see that the three new items that were added to catalog.php automatically get added to our shopping cart.0903

Additionally, if we submit 0 items for all of our shopping cart, isValidCart is going to work for all of those new items that were added,0910

because it goes over all of the items in the cart, including all of these new ones--not just the ones we had hard-coded into the script.0918

Additionally, it is going to calculate the cart total for these new items, as well.0926

Let's say we want to buy one winter jacket, which is a new item, and we hit Checkout.0929

You can see that the calcCartTotal function worked fine, and it was able to calculate the total for that new item that we added to the store.0937

So, it is pretty impressive how the flexibility of our code has increased.0944

And now, just by changing the data behind our website, this website can automatically cope with that and make changes.0948

The other thing is that now we have added these new items to catalog.php, I just want to mention that I have also added the links to them on the homepage.0959

What I have done is put one of each of the new three items in each of our three departments.0967

So, if we go and look back at the homepage now, you can see that there are three new items added.0974

For example, if we click on DVD Player, which is a new item, DVD Player shows up.0980

And this, again, is an interesting point, in that we had created item.php many versions ago.0985

And now, because that item.php is able to display the information for any item, just by adding a new item to the catalog0995

and updating the itemID query string that we pass to item.php, we are able to print out the information for all of these new items.1004

That is opposed to having to add three whole new item pages to our website.1014

Maybe we would create three more new HTML pages, one for each item.1018

We haven't had to add any new pages--no new PHP pages, no new HTML pages.1022

All we have done is updated our data in the background, which is in that itemCatalog.php.1026

And because of the dynamic nature of item.php, we are able to automatically display the new items, as well.1031

That is pretty impressive, as well.1038

Now, in version 13.1, what we are going to be doing is making one small change.1041

We are going to be changing outputItemLink; and what we are going to do is remove its global dependency on the item catalog, which is defined in catalog.php.1047

If we look at our current version of outputItemLink (this is version 13.0), we can see that it has the dependency on the global variable itemCatalog.1057

And it uses this global variable to load up an item's information from the catalog.1069

So, for example, because it depends on a global array existing called itemCatalog...let's say we want to reuse this function in another web application.1075

Maybe we add it to somebody else's website, and they have added all of the items in their catalog to an array called items.1087

And this right here is how you would access that.1093

Well, because our version is hard-coded to be dependent on itemCatalog, it is no longer going to work in there.1097

So, what we are going to do is: instead of using this global array to look up the item's information,1106

we are actually just going to change it so that we just pass the item information directly to the function.1113

And then, we can eliminate that global dependency.1121

So, the way that looks in the finished version 13.1 is: we can see, we have added a new parameter called item,1124

which is an associative array containing information about the item (name, price, file extension, and so forth).1131

The rest of the function is going to work the same, but now we have eliminated that dependency.1139

We can move this function library to another application, and it will work.1142

Now, the reason that change was made is: if we look at the old viewCart.php, what we can see here is that,1148

when we have been looping over the item catalog, we have been pulling out the current item ID, or the item ID of each item1155

in the item catalog; we have also been pulling out the associative array that contains all of that item information.1163

If we already have that information in this array, we use it down here to output the item's price.1168

So, instead of just passing the item ID to our outputItemLink function, we already have that information in a variable that is loaded;1174

why not just pass it in, in this way?1182

So now, it is going to set that variable item: what it is going to do is: now we don't have to look up the item in the global array anymore.1186

That global dependency is going to be gone, and we can make use of this new function.1194

In our new version of viewCart.php (let's scroll down), now we simply pass two parameters to outputItemLink,1199

the second one being the current item, which is the associative array containing the current item's information1208

that we have already extracted from the itemCatalog.php in here.1214

It is going to make our function more reusable; we can use it in another web application without being dependent on that global variable.1218

Any time you can reduce those global dependencies, that is a good thing for the reusability of your code, which is always a goal when programming.1225

For the homework challenge, I just want you to review how we have used the while loops within viewCart.php in our functions1236

to remove static values and static HTML from our files, so that instead of (for example) having to manually go in1243

and statically add a new HTML row to our table for each item that we add to our store (if we added a fourth item to our catalog,1253

we would need to go to viewCart.php in our old version and add a new HTML row), now, by using a while loop,1262

we can just loop over the catalog, and it generates that dynamically.1269

So, make sure you can understand and see how those while loops really increase the flexibility,1272

and reduce the work that we have to do, as programmers or developers, because now we don't need to update the HTML file1277

(or in this case, the PHP page) every time we add a new item to the store.1287

And that applies for the isValidCart function, because now we can validate a cart with any number of items in it--1290

and then also for the calcCartTotal function, because we can calculate the total of the cart with any number of items in it1295

without having to go and change the function and say, "OK, I want you to also add the subtotal for item-1004, which we just added."1300

Also, just as far as outputItemLink goes, just understand how the global dependency that we have removed from that function1309

has increased the reusability of that function: now, we can use it in more places, and that is always a good goal for our coding.1316

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

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.