Matthew M.

Matthew M.

Variable-Length Parameter Lists

Slide Duration:

Table of Contents

Course Introduction

12m 13s

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

15m 32s

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

33m 11s

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

12m 41s

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

40m 24s

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

16m 38s

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

18m 6s

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

38m 43s

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

34m

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

27m 38s

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

30m 18s

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

32m 1s

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

20m 20s

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

31m 56s

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

20m 51s

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

20m 11s

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

22m 41s

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

52m 20s

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

19m 24s

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

26m 29s

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

18m 58s

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

19m 8s

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

23m 22s

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

19m 27s

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

20m 49s

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

24m 49s

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

28m 20s

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

43m 50s

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

56m

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

31m 37s

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

28m 27s

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

19m 35s

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

23m 7s

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

57m 20s

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

35m 50s

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

22m 7s

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

29m 28s

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

25m 58s

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

23m 12s

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

22m 16s

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

38m 36s

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

31m 49s

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

Share this knowledge with your friends!

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

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

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Lecture Comments (1)

0 answers

Post by petar vukasinovic on October 10, 2012

Hello Matthew i have a question for you. Im learning from you php and i will go to advanced php but can you tell me one thing. This is my first time to see php, and i have lots of stufs clear in my mind right now but can you tell me how i can learn it better i mean with more understanding.
Im practising what i learn from you every day but should i make a project like web app but alone or something pls tell me if you have idea.
thank you i love your lessons :)

Variable-Length Parameter Lists

Variable-Length Parameter Lists

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
  • Variable-Length Parameter Lists 0:34
    • Variable-Length Parameter Lists
    • Coding Example
  • Variable-Length Parameter Lists (cont.) 5:21
    • When a Parameter List is Defined For the Functions
    • Coding Example
  • Variable Type Functions 9:54
    • is_int (), is_float (), is_string (), and is_bool()
    • is_ array ()
    • is_null ()
    • Variable Type Functions Coding Example 1
    • is_numeric() and Example
    • Variable Type Functions Coding Example 2
  • Homework Challenge 19:35
    • Homework Challenge
  • Homework Challenge (cont.) 20:52
    • Homework Challenge (cont.)

Transcription: Variable-Length Parameter Lists

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

In today's lesson, we are going to be talking about user-defined functions with variable-length parameter lists.0004

Specifically, we are going to be talking about what variable-length parameter lists are and how you can define functions that have variable-length parameter lists.0012

And then, we are also going to talk about some built-in functions to PHP that relate to finding out the types of different variables.0020

And that is something that is often used with variable-length parameter list functions.0027

User-defined functions in PHP are permitted to accept any number of parameters.0036

The functions we have worked with before have had required parameters and optional parameters.0042

But all of those are explicitly listed in the function's definition.0048

In a variable-length parameter list function, you can supply arguments or parameters to a function0051

that aren't even defined in the list, whether required or optional.0058

PHP provides a couple of built-in functions for being able to deal with these types of functions.0062

And they are only user-defined functions: there is one called func_num_args, which is a function that returns0069

the number of arguments that were input to a particular function.0075

func_get_arg, which allows you to get the value of a particular argument that was passed in, and then func_get_args,0081

which returns an indexed array of all of the function arguments that were passed to a particular user-defined function.0089

Now, one thing to note is that these functions interpret the argument list as being 0-indexed, just like an array--0097

meaning that they treat the first argument as being argument 0, rather than argument 1--so it works just like arrays.0104

If we take a look at a file called variableParams.php, I have created a function here called add.0112

And as you can see, it has no defined parameters; it has no parameter list.0119

But in fact, it can accept multiple parameters.0126

And what this function does is: as many numeric parameters as you provide to it--0129

it is just going to add them all up, however many you provide, and then return the sum.0135

For example, here we call the function add 1, which means we are providing one argument to it, and it's the number 1.0140

What is going to happen is: when we enter the function, we set up a sum variable, which we just set equal to 0.0149

And then, what we do is use a for loop to loop over all of the arguments provided to the function.0155

So, we set i equal to 0, which is our counter; and then, we say, "As long as i is less than the number of arguments, go ahead and evaluate the loop."0161

And the loop evaluates by just cumulatively adding the value of each parameter to this sum variable.0169

And the way it does that is: you can see here, we made use of the built-in function func_get_arg.0177

And what we do is: we pass it the number of the argument that we want to get;0184

and in this case, for the first time through this loop, it's going to be 0.0191

And that is because, as mentioned, in an argument list, the first argument is considered by these functions to be 0.0194

So, the first time this loop goes through, this is going to say, "Give me the argument at index 0,"0200

which is going to be the first argument, "and add it to the sum."0206

It is going to do that for each of these arguments.0209

Once it reaches the end of the number of arguments that we have, or it has looped over all of the arguments, it is going to exit.0211

In this case, it is only going to loop through one time, because we have only provided one variable to it.0217

So, it is going to be 0; then, when the loop finishes, it is going to increment to 1.0222

And 1 is not going to be less than 1, which is the number of arguments, so it will end.0227

If we run this script, we can see that sum equals 1 when we pass it one parameter with the value 1.0232

Now, let's say we want to add multiple numbers: 1, 2, and 3.0243

Now again, this function doesn't have its specified parameter list; it says that it accepts three functions,0250

but it has the built-in capability, using these built-in functions from PHP0255

(the func_num_args and func_get_arg) to be able to add up all of these together.0260

So, the result should be 6; and when we reload our page, we can see that that is the result.0265

And you can do it indefinitely: you can add as many arguments as you want.0270

We add a 4 and a 5; it should sum up to 15--and as we see, that is going to be the case.0275

The other thing to notice is that, if you don't provide it any arguments, that is still going to work.0283

When we enter it, the sum is going to be equal to 0.0290

We are going to set the counter equal to 0, and we are going to say,0293

"As long as i is less than the number of function arguments, we are going to execute the loop."0295

Well, the number of function arguments is 0; 0 is not less than 0, so this is never going to get executed.0298

So, it is just going to return the sum, which is going to be the default value, its initial value, which is 0.0303

When we run this, we should get sum=0.0309

And so, that is an example where you don't even have to pass parameters to functions that accept variable-length parameter lists.0311

As far as variable-length parameter lists go, you can also supply a variable number of arguments to a function that has a defined parameter list.0324

Like with the functions we have worked with before, where we have the required or optional parameters,0337

you can also supply additional parameters on top of that--additional function arguments.0342

And then, one thing to note is that, for those arguments that you have already defined parameters for (for example,0351

let's say you call the first one required 1, the second one required 2), you can access those parameter values0360

(or the values passed in for those parameters) when you call the function by the variable names that you give them.0365

(for example, required 1 or required 2); or you can access them by the built-in functions for dealing with variable-length parameter lists.0372

For example, even though the first parameter might be called required 1 in our function definition,0379

we can also access that with a func_get_arg with the value 0, because that is going to say, "Give me the value of the first argument."0386

Let's take a look at how this works in a script called variableParams2.0394

And here, we have just updated the function add, and we have had it so that it requires two arguments.0400

It requires an op1 and an op2; and what it does is takes those two arguments and adds them together.0406

Then, it provides the additional functionality that you can supply it any other number of arguments,0413

and it is going to add that to the total of op1 and op2.0418

But these first two arguments are required; and if you don't supply them to the function, you are going to get an error from PHP.0421

Now, as you can see here, one thing to note is that, when we loop over all of the "extra" arguments provided to the function,0428

all of those variable-length parameters, we start our loop counter at 2, because if we started it at 0,0435

because we have already added op1 and op2 to each other, if we started it at 0, it would add them again, and our sum would be incorrect.0445

So here, we started it at 2 and said, "I want to add, in addition to op1 and op2, any additional arguments from the third argument on."0452

So, for example, if we pass it the two required parameters 100 and 1, we should get the sum 101.0461

If we load the page, that is what we get.0469

Now, if we were to call it, for example, with just one parameter, because they are listed as a required parameter,0472

we are going to get a warning from PHP.0478

And it is going to say "missing argument2 for add."0481

Let's go back and correct that; and now, let's add some additional arguments: 2, 3, 4, which should give us the sum 110.0486

And so, when we go and reload the page, we should see that our sum equals 110.0498

And so, the thing to note here is that the first two arguments are added up by accessing them0506

using their defined parameter names, op1 and op2, which were defined in the function definition.0521

But as mentioned on the slide, you can access them using this function func_get_arg, as well.0523

So, we could cancel this out here; and even though these are defined parameters, we don't have to access them using their variable names given.0527

We can set sum equal to 1 and have the content of this loop be the same as it was before--as in, add with no required parameters.0537

Here, we have two required parameters, but it is still going to work with the same code,0546

even though we are not accessing op1 and op2 using those variable names.0550

So, when we run this function again, it is still going to give us 110.0554

And we can see that, when it reloads, that is exactly what happens.0559

And just to make sure, let's remove a couple of these parameters so that we get 103.0561

So, you can see that the function still works; so, for parameters that are defined, you can access them using the func_get_arg function.0573

Or, you can access them directly by calling them by their variable name that you defined in the parameter list.0586

PHP also provides a bunch of built-in functions that are useful for testing whether a variable is of a certain type.0595

So, when you have functions that accept variable-length arguments, sometimes you may have a function0603

that can accept different kinds of variables and do different things, depending on what is provided.0609

Maybe if it provides a string as a variable argument, it does one thing; maybe if it provides an integer, it does another thing.0613

And these functions can also be used in functions that don't allow variable-length parameter lists; but that is one of the areas where they are used.0619

These first four here: you supply the function with a variable, and it returns true, in this case, if the variable is an integer data type.0629

Here, it returns true if it's a float; if not, it returns false.0640

Likewise, for string and bool, the same thing happens: if it's a string or a bool, it returns true; if it's not, it returns false.0644

Additionally, you can test if something is an array; and that just returns true if it is an array--it doesn't matter whether it's indexed, empty, or associative.0650

An empty array, even--it is going to work: it will return true.0659

And then, we have a function is_null; and we had already kind of been using that.0661

You can use that in a test condition--for example, let's say we had an if statement: you could say is_null ($var).0665

That is the same thing as if we had typed if var=null; it's another way of using that.0677

Let's take a look at a script that uses some of these variable-type functions.0689

What we have here is a function called outputType; it accepts a variable number of arguments, so it has a variable-length parameter list.0695

And the first thing that we do, in contrast to the other implementations we used for variable-length parameter list functions:0704

we are going to make use of this func_get_args function that is built into PHP.0715

And what that does, as mentioned: that provides an indexed array of all the arguments provided to the function.0719

Then, what we are going to do is use a foreach loop to loop over this args array, which is an indexed array of all the arguments.0725

We are going to pull out the key (which is going to be 0 for the first argument, 1 for the second argument),0733

set the variable argNum to that key, and then set the variable argVal equal to whatever the value of that argument is.0738

For example, if we look down here where we call the function, we are calling it with a number of different literal values.0749

And so, for example (1, 2, 3, 4, 5...), we are providing it 6 different values; so this is going to be a length 6, and this loop is going to work 6 times.0757

Now, what we are going to do within the loop is: we make use of these is_int, is_float...0766

these variable-type functions that are built into PHP to perform a different function.0770

In this case, we are outputting information about the variable, but just in a slightly different way.0774

For example, if argVal is an integer, we are going to say, "Argument number (whatever argument number it is) is an integer,"0780

and then it has the value, and it outputs its value.0787

If it is a float, we are going to say "argument xx is a float"; the same thing for a string; the same thing for a boolean.0790

For the boolean here, we use this ternary operator, because as we know, when you convert a boolean literal to a string,0797

true just comes out as 1, and false evaluates as the empty string.0808

So, what we are going to use is the ternary operator to say, "If argVal is equal to the boolean value true,0812

we are going to output the string 'true'; if it is equal to false, we are going to output the string 'false', as opposed to 1 or the empty string."0817

If the argVal is an array, we are going to say you have argument so-and-so as an array.0824

And then, we are going to use another foreach loop to loop over the array, and then output all of its different values.0831

And then, here we just make use of the is_null function to see if an argument value is null.0838

So here, we just have a called output type that is going to test all of these different scenarios0845

and all of these different variable-type functions that we have.0850

We provide it with an integer 1, a float value 2.5, the string hello, the boolean value true,0852

an array containing three integers (1, 2, and 3), and then the value null.0858

So, if we go ahead and load this page up, and we look at its output, we can see: argument 0 is an integer with value 1.0863

Argument is a float with value 2; notice that the first argument has that number 0--again, arguments in these built-in PHP functions0874

(like func_get_args or func_num_args use a 0-indexing system, so that the first argument is 0 and the second argument is 1.0883

Here, it just outputs all of what we had input to the script; and it does something different0895

for each argument that we pass into it, based on what type it is.0899

Here, we say it's a boolean--it is equal to true; this is an array, and then it has output the different values.0904

And so, for example, we could go and switch things around here: let's switch 2.5, and let's do two floats--get rid of that first integer.0909

We can see how the function can adapt; and so, when we run it again, it is going to say,0922

"OK, your first argument is a float with value 2.5; your second was a float with value 3.3" and so on.0925

One other function that works with finding information about a variable's data type (actually, I'm going to erase this0935

and clean things up a little bit)--all of these specifically work with defined data types in PHP: integers, floats, strings, bools, arrays, and null.0946

There is another is function that is is_numeric; and what it does is takes a variable that is typically a string0957

and tells you true if it can be interpreted as a numeric value.0966

For example, it is used often on forms.0971

When you have a form on the Web, and you submit the form via GET (for example), it submits name/value pairs for the values that you entered.0974

Everything that is submitted is in a string, so even if it says, "How many children do you have?" and you entered the number 30983

on the form, and you submit it, it submits number of children equals 3, and 3 is a string--it is not a number.0990

It is not a number data type; it is a string data type.0996

And so, what is_numeric does is: you can pass it (for example) the string 3, and it is going to return true if that is a numeric string.1001

And if not, it is going to return false; so if you passed it the string a, which is not a numeric string, it is going to return false.1014

And it works for integers or floats; if you provide it 3.5, it is going to return true, because 3.5 can be interpreted as a number.1022

So, I have created another script here called variableTypeFunctions2.1031

And here, we have created a function called outputNumber, and it takes one required parameter.1039

And what it does is tests that parameter provided--if it is numeric.1045

If it is numeric (which means it is a string that can be evaluated as a number), it goes ahead and outputs saying "the number was so-and-so."1051

And if not, it is going to output a message saying that you need to provide a numeric string.1060

And what we have done is set up the form so that it accepts a GET parameter called number.1065

And here is our processing of the GET parameter number: it is what we have been using in our web application.1070

We create a short variable called number, and if the GET variable number exists, it gets set to the value; if not, it gets set equal to null.1077

Here we can actually see: we are using the is_null function, rather than using ==null.1086

We are saying, "If number, the short variable, is equal to null, then output a message 'you need to provide the GET variable number.'"1090

If not, it is going to call the function outputNumber with the value that was passed in as number, and then it runs this function.1098

And again, if it is numeric, it outputs the number; if not, it says "the GET variable number must be a numeric string."1105

If we go and take a look at the script, variableTypeFunctions2, it just calls it without any GET variables.1111

So, the first thing it is going to say is, "You need to provide a GET variable number."1118

So, if we go ahead and provide the GET variable number and set it equal to 101 (to be different), and we submit the script,1121

it is going to say "the number input was 101," because that is numeric.1130

We also could put in 101.5; that is a numeric number, even though it is a floating-point number.1134

It is going to say "the number input was 101.5."1140

What that means, in both of these cases: is_numeric returned true;1143

that numeric string that you passed to the script via GET could be interpreted as a number.1146

Now let's say, instead, we set number equal to a string value, Hello.1154

We are going to get that error message that says "the GET variable number must be a numeric string,"1162

because this test is_numeric failed because it wasn't a numeric string, and so this message gets output.1166

For the homework challenge for today's lesson, I want you to create a function called multiply that has two required parameters: op1 and op2.1177

It is going to be similar to the add function that we developed in this lecture.1186

And then, it also accepts any additional number of numeric parameters.1191

The first thing you should do is test if op1 and op2 are numeric data types, using the is_numeric function that we just learned about.1195

If so, it multiplies them together; if not--if either one of them is not numeric--it should return the value false.1202

If op1 and op2 are both numeric--both required parameters are numeric--it multiplies them together.1210

And then, it goes ahead and, if there are any additional parameters (this is a variable-length parameter list function--if any1215

other non-required parameters are provided), it is going to test each one to see if it is numeric.1223

And if it is, it is going to multiply them times the quantity that was the result of multiplying op1 times op2.1227

It is going to do that for each additional parameter, cumulatively multiplying.1234

If any of these additional arguments are non-numeric, it is going to return the value false.1238

So basically, all of the arguments supplied, including the two required arguments, are numeric,1242

it is going to return the total from multiplying all of the numbers together.1248

And the way I want you to test that is: you can test your function multiply by inputting the following sets of inputs.1253

and then outputting the results of the multiply function, and then verifying that the results that you get are matched down here.1261

For example, if you input the two arguments 1 and 2, your result that you get (output) should be 2.1268

If you input 1 and the string Hello, your result should be false, because is_numeric is going to run on the string Hello, and it is going to return false.1278

If you input four different numbers (1, 2, 3, 4), those are all going to pass the is_numeric test, and the result is going to be 24.1285

If you pass in the two required parameters, and then two additional parameters (one of which is the string Hello),1292

the function should return false, because Hello is not going to pass the is_numeric test.1298

This is going to give you practice with the is_numeric function, which is something you are going to be using in your scripts a lot,1303

because again, when you take information from forms on the Web, they are always in the form of strings.1309

So, you need to run tests on them to see if they are numeric strings.1316

For example, it doesn't make sense to multiply strings together, so you would need to run these tests.1321

It is going to give you practice with that; it is also going to give you a little exposure to using user-defined functions with variable-length parameter lists.1325

That ends today's lesson; thank you for watching Educator.com.1333

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.