Matthew M.

Matthew M.

Logical & Ternary Operators

Slide Duration:

Table of Contents

Course Introduction

12m 13s

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

15m 32s

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

33m 11s

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

12m 41s

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

40m 24s

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

16m 38s

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

18m 6s

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

38m 43s

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

34m

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

27m 38s

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

30m 18s

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

32m 1s

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

20m 20s

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

31m 56s

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

20m 51s

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

20m 11s

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

22m 41s

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

52m 20s

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

19m 24s

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

26m 29s

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

18m 58s

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

19m 8s

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

23m 22s

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

19m 27s

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

20m 49s

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

24m 49s

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

28m 20s

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

43m 50s

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

56m

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

31m 37s

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

28m 27s

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

19m 35s

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

23m 7s

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

57m 20s

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

35m 50s

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

22m 7s

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

29m 28s

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

25m 58s

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

23m 12s

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

22m 16s

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

38m 36s

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

31m 49s

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

Share this knowledge with your friends!

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

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

  • Study Guides

  • Download Lecture Slides

  • Table of Contents

  • Transcription

  • Related Services

Start Learning Now

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

Sign up for Educator.com

Membership Overview

  • Unlimited access to our entire library of courses.
  • Search and jump to exactly what you want to learn.
  • *Ask questions and get answers from the community and our teachers!
  • Practice questions with step-by-step solutions.
  • Download lesson files for programming and software training practice.
  • Track your course viewing progress.
  • Download lecture slides for taking notes.
  • Learn at your own pace... anytime, anywhere!

Logical & Ternary Operators

  • Logical operators are used to create complex boolean expressions and operate on boolean operands. PHP’s logical operators are:
    • NOT ( ! ) – unary operator that returns TRUE if its operand is FALSE
    • OR ( || , or ) – binary operators that return TRUE if either operands are TRUE
    • AND ( && , and ) – binary operators that return TRUE only if both operands are TRUE
    • XOR ( xor ) – binary operator that returns TRUE if either operand is TRUE , but not both
  • The OR and AND logical operators have two options because the options have different precedence:
    • || has a higher precedence than or
    • && has a higher precedence than and
  • The OR and AND logical operators are known as short-circuit operators meaning that if the value of their left operand can determine the result of the operation, the right operand never gets evaluated.
  • The ternary operator is the only ‘ternary’, or three-operand, operator in PHP. If a ternary operator’s 1st operand evaluates to TRUE , then the value of the 2nd operand is the result of the operation, otherwise the value of the 3rd operand is the result of the operation.
  • Additional Resources:

Logical & Ternary Operators

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:17
    • Lesson Overview
  • Logical Operators 0:49
    • Logical Operators Definition
    • NOT (!)
    • OR ( ||, or)
    • AND (&&, and)
    • XOR (xor)
  • Logical Operators (cont.) 2:54
    • The OR and AND Logical Operators
    • Precedence of Logical Operators
  • Logical Operators Coding Example 3:58
    • Logical Operators Coding Example
  • Short-Circuit Operators 9:54
    • Short-Circuit Operators
    • Coding Example
  • Ternary Operator 14:07
    • Ternary Operator
    • Syntax and Example
  • Coding Conventions 17:36
    • Coding Conventions
  • Homework Challenge 19:08
    • Homework Challenge
  • Homework Challenge (cont.) 20:26
    • Homework Challenge (cont.)

Transcription: Logical & Ternary Operators

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

In today's lesson, we are going to be introducing a bunch of new operators.0004

In particular, we are going to be introducing a group of operators known as the logical operators.0008

And we are also going to be introducing what is known as the ternary operator.0012

So, as mentioned, we are going to be talking about a number of different operators that fall under the class of logical operators0019

which allow you to create complex boolean test conditions, which are often used in if statements and so forth.0025

We are going to talk about how a couple of the logical operators are known as short-circuit operators, and we are going to explain what that means.0034

And then, finally, we are going to end up by talking about the ternary operator, which is a special operator in PHP.0041

As mentioned, logical operators are used to create complex boolean expressions, and they operate on boolean values.0051

The ones that are provided by PHP are the NOT operator, the OR operator, the AND operator, and the XOR operator.0060

What they do is: for example, the NOT operator is a unary operator.0070

And what that does is: whatever boolean value it acts on, it returns the opposite.0074

So, if the boolean value is true...if you prepend the NOT operator, which is the exclamation point, to a boolean value,0079

it's going to return the opposite, so if you prepend it to true, it's going to return false.0088

If you prepend it to false, it is going to return true.0092

Then, there is also a binary operator known as the OR operator; it has two forms.0097

It can be used with two vertical bars, which are the same key on the keyboard as the backslash, typically.0103

And then, there is also the operator which is the or keyword.0109

Now, this, again, is a binary operator, and what it does is: it returns true if either its left or right operand are true.0114

So, it operates on two boolean values; so the only case it returns false is if both of its operands are false.0122

AND is the converse of the OR operation, and it also has two ways to specify that: double ampersands, and then also by the and keyword.0129

And it is a binary operator that returns true only if both its left and its right operand are true.0141

So, if they are not both true, every other condition returns false.0146

Finally, there is the XOR operator, which is known as the exclusive OR operator; and this is how it is specified in the code.0151

And it is a binary operator that is similar to the OR operator; it returns true if either one of its operands is true, but not if they are both true.0160

So, it's an exclusive OR: it can only be one or the other.0170

The OR and AND logical operators, as mentioned, have two different options.0176

The reason they have the different options (for example, the OR operator has the vertical bar option and the or option)0180

is because they have different operator precedences.0189

For example, the vertical bars have a higher precedence than the or operator,0194

and the double ampersands have a higher precedence than the and operator.0199

The lower precedence versions are not used very often, and we are not really going to be talking about them much in this course.0204

The ones you will see will mainly be these double vertical bars, the or operator, and the double ampersand.0210

Now, just to talk, in general, about the precedence of all of the logical operators, from highest to lowest, they go this way.0216

Basically, the NOT operator has the highest precedence; then, it's the AND, the OR, and so forth.0223

And additionally, all the logical operators are left-associative, except for the NOT operator, the exclamation point, which is right-associative.0231

Let's go and take a look at a script called logicalOps.php that demonstrates these logical operators in action.0239

We are first going to talk about the NOT logical operator, which is the exclamation point.0248

And as we know, with if statements, an if statement evaluates a statement group if its test condition is true.0254

In this case, we have the NOT operator being prepended to the literal value false.0262

So, as we mentioned, it says the opposite truth value of what it is provided--of its operand.0269

Since it is not false, the opposite of false is true--this test condition here is going to evaluate as true.0275

So, this echo statement right here will be output.0281

Now, if we do the same thing using a boolean variable to show that it can work on variables, as well,0286

we can create a temp boolean variable, and we set it equal to true.0292

And then, we set the condition equal to !$tmpBool; so in this case, it's going to be "if not true."0295

And "not true" is always going to be equal to false; because this test condition will be false, this will not get executed.0302

And instead the else statement group will get executed, so this statement down here will be executed.0309

Now, to demonstrate the OR operator: as mentioned, the OR operator will return true any time either one of its operands is true.0315

So, using literal values, in these first three cases here, where we have either one of the operands as true,0326

or in this case (the third case) both of the operands are true, each of these test conditions are going to evaluate to the expression true.0333

So, all of these echo statements within these if statements are going to get output.0342

Now, the only time the OR operator returns false is if both of its operands are false.0347

So here, if we have if false OR false, it's going to return false, and so, the else echo statement is going to be echoed.0352

Down here, this is the same exact thing with the same exact results, except it uses the lower precedence or operator.0361

But it demonstrates the same logical functionality, which is: if one or the other is true, return true.0367

For the AND operators, as mentioned, that binary operator only returns true if both of its operands are true.0374

So, in this first case here, if we say true AND true, that will evaluate to TRUE, and so this echo statement will be output.0382

In these other three examples, where we have true and false, false and true, or false and false--0389

all of those are going to return the boolean value false, because both operands are not true.0394

And so, in these cases, the echo statements in the corresponding else statement groups are what is going to be executed.0400

Down here is just, again, an example of the lower-precedence and operator.0409

It has the same logical functionality, only returning true if both operands are true; and this is just what it looks like in code.0415

Now, the XOR operator, which only has one version, returns true if either one of its operands is true, but not both.0423

So, in this case--these first two cases here, where only one of the operands is true--these if echo statements will get output.0433

However, in each of these cases, where it's true XOR true and false XOR false, both of those logical operations will return false.0441

So, the else echo statement will be output.0450

And down here, it just shows the results of these different operations.0455

Basically, it is the output from all of these if and else statements that we had up above, and basically saying...0460

It's like a truth table, explaining how these operators work--not false equals true; not true equals false; and so forth.0466

The OR operators return true, except when both operands are false.0472

The AND operators only return true when both of its operands are true.0478

And then, as we learned with the XOR operator, it only returns true when one of its operands is true.0483

Now, if we look at the code behind this (this is logicalOps.php--let's scroll down to the Code section)...for example, where we have0491

the OR operator, in the fourth demonstration of the vertical bar OR operator, we have an if/else statement.0504

It is saying, "If false OR false, echo this statement here; otherwise, echo this statement here."0512

Well, because false OR false is always going to be false, this statement here is never going to get echoed.0519

So, what we can do instead is use a combination of logical operators.0526

So, we can actually change this and get rid of the else statement by including the NOT operator.0529

And what we are saying is: if false OR false is not true (meaning it's false), then go ahead and evaluate the if statement.0537

So, in that case, we can get rid of this else statement and replace its output up here.0546

And this shows, again, a combination of using logical operators in combination with each other.0554

So, we have the first logical operation, which is false OR false, which is going to return the value false.0559

Then, we are performing the NOT operation on that false value, which is going to return true.0564

Therefore, this echo statement is going to return, which says false OR false equals false.0568

If we save this and go back and look at the page, down here in the results for the OR operator, we should see the same results.0574

And we refresh, and you can see that false OR false equals false.0586

That is an example of using a combination of logical operators.0589

Now, two of the operators, the OR and the AND logical operators, both versions of those operators, are known as short-circuit operators.0595

What that means is: if the value of their left operand, which is an expression, can determine the output of their operation,0602

then the right operand, or right expression, is not evaluated at all.0610

For example, with the OR operator, we know that it returns true any time either operand is false.0615

So, if the first operand--left operand--evaluates to true, there is no need to evaluate the right operand,0621

because we know that the operation is always going to return false.0627

Likewise--or in the opposite way--for the AND operator, the AND operator, we know, only returns true when both of its values are true.0631

So, if the left operand, or first operand, is false, we know the AND operation is always going to return false.0638

And so, there is no need to evaluate the right operand or right expression.0644

So, if we go and look at a script called shortCircuitOps.php, we can see this short-circuit operation in action.0649

For the OR operation (and we are going to use the vertical bar version), if we create a variable called orTemp and set it equal to 0,0662

and then, we say, if true, orTemp=1, orTemp=1 is an assignment statement, and assignment statements, as we know,0671

are expressions, and they have a value; and the value of an assignment statement is the value that is being assigned.0681

So, this expression, if it were to be evaluated, would have the value 1.0687

So, if we go ahead and run this if statement here, because this first operand is true, that determines the output of the operation.0692

The OR operator is a short-circuit operator, so this second expression never gets evaluated.0700

The value of orTemp never gets updated to 1, so when we echo this statement down here that echoes the value orTemp,0705

it is still going to have the value of 0.0711

And if we look down at the bottom, we can see: orTemp equals 0 in this first example.0713

Now, let's say we switched the order around: the left operand always gets evaluated.0718

In this case, this is going to evaluate orTemp=1, so that means orTemp is now going to be updated--it is going to have the value of 1.0722

And then, it is going to say 1 OR true; and since that is always going to return true, then what you have is:0729

we are going to echo out the orTemp value, and we are going to see that it is actually going to update it, in this case.0736

So, if we look down here, we see that orTemp=1.0740

That shows how the short-circuit operation of the OR operator works.0743

Similarly, for the AND operator, if we declare a variable andTemp, and we set it equal to 0, and we have a logical operation0748

that is false, "AND"-ed with the assignment operation where you are assigning the value 1 to andTemp,0757

we can see that, as a result, andTemp is never going to get set equal to 1.0765

When this echo statement occurs, andTemp is going to output 0.0770

That is because we know that the left operand is false, so the AND operation is always going to return false.0773

There is no need to evaluate this left expression.0780

And as you can see, here we used what we had talked about in the last example, where we were combining logical operators.0784

Here we have an AND operation, false AND this assignment statement.0792

And if that returns false (which it is going to), then we can use the NOT operator; prepend that to that, and it's going to0796

return it as true, which makes this echo statement evaluate.0804

If we look at the output of this if statement right here, we can see that andTemp is going to be equal to 0.0809

That is because this andTemp=1 assignment statement never occurs.0814

Again, as we saw with the OR example, if we switch the order of the operands on the AND statement,0818

this andTemp=1 assignment statement will always get executed, so the value of andTemp is going to get set to 1.0824

And because this operation is going to return false, and then we perform the NOT operation on that, which is going to return true,0833

this echo statement will occur; andTemp will be outputted; and here, we can see that it is output to the value of 1.0839

Now, we are going to talk about a special operator called the ternary operator.0848

Sometimes, it is also referred to as the conditional operator.0852

And as the name implies, it's a ternary operator, which is a 3-operand operator; and it is the only ternary operator within PHP.0856

And the way it works is (here is an example of what it looks like in action, down here):0865

its first operand here, op1, is interpreted as a boolean expression, or a boolean value.0869

If it equals true, then (after the question mark is the second operand) the second operand will be returned.0877

So, whenever op1 equals true, this will be returned as the output of this operation.0885

If op1 equals false, then op3 will be returned.0895

And again, just to mention, it uses a question mark to separate the first and second operands, and the colon to separate the second and third.0905

So again, if op1 is true, the second operand is the output of the ternary operation.0913

If op1 is false, the third operand is the output of the ternary operation.0918

Let's take a look at a script that demonstrates that, ternaryOp.php.0925

Basically, what we have here is a ternary operation where we have a variable result, and we are setting it equal to the output of a ternary operation.0931

And here, we can see, a ternary operation has the question mark, the colon, and the three operands.0940

We set the first operand to the literal value true; so because it's true, we know from what we just learned0946

that the ternary operator outputs the value of the second operand.0953

So, in this case, the result is going to be set to the second op; and when we output the result, it is going to say secondOp.0956

And if we look down here, we can see: this first output is output=secondOp.0962

Likewise, if we instead set result equal to this ternary operation, because the first operand is false,0967

the output of the ternary operator is going to be the third operand; in this case, it's the string thirdOp, so our output is going to say the string thirdOp.0974

And in fact, that is what it does.0983

Now, one other thing you can do is: this uses literals, but to demonstrate--you are typically not going to be using literals0987

as the first operand in a ternary operator; you are going to be using variables and combinations of variables,0993

using comparison operators, logical operators, and so forth.1000

Here, if we declare a variable, temp, equal to 1, and then we run the comparison operation temp=11003

(and this is, again, as we learned from our lesson on comparison operators, the equals operator),1010

and it returns true with both values on each side of it, both of its operands' values are equal.1014

So, temp=1, so 1=1=true, so it is going to output the second operand, which says "temp=1."1020

And we can see down here, outputted, it says "temp=1."1026

Now, if instead we go ahead and set temp equal to 0 and run the same ternary operation and store its output in result,1030

this is going to evaluate 0==1, which is going to evaluate to false, because 0 is not equal to 1.1038

So, the third operand is going to be output, which in this case is a string that says temp not equal to 1.1045

And we can see our output down here; it says temp not equal to 1.1051

I just want to quickly talk about coding conventions as it relates to these different operators, particularly the logical operators.1057

Basically, PHP is always going to abide by the rules of precedence and associativity as it evaluates different expressions.1065

For example, this if test condition here and this if test condition right here actually evaluate to the exact same boolean value.1071

It is a combination of two logical operators--a logical AND and a logical OR operator.1083

However, this one has parentheses around the AND operation.1090

Now, the AND operation has a higher precedence, so when this statement up here gets evaluated, this operation will always occur first.1093

The result of that will be "OR"-ed with the a operation.1103

Now, down here, the same thing happens, except we explicitly put in these parentheses.1106

What that does is: even though the parentheses aren't needed, it makes the code a little bit easier to read and a little bit easier to understand.1111

So maybe, if somebody is reading your code that is not as experienced in PHP and in working on it,1118

they can intuitively know that, "OK, this AND operation is always going to happen."1123

And it goes along the lines of: if you can make your life easier by adding just a few extra things,1126

then why not take the extra step to go ahead and add these extra parentheses.1131

So, in our examples in this course, we are always going to add extra parentheses to make it explicitly clear1135

which order the operation is going to occur in, even though it's not necessarily necessary.1142

For today's homework challenge, I'm going to have you create a script that accepts two GET variables--one called sex and one called age.1149

For this challenge, I want for the sex variable to either take on one of two values: male or female.1158

And then, let age represent the age of a user, and have it take on the values between 1 and 99.1164

And I want you to add a single if statement to your script; and this is to practice using the NOT operator.1171

And it is going to test if the sex GET variable is not equal to male; then, it should output a message that says, "The user's sex is female."1177

And what you can do to test this out is to manually edit GET query strings, using both of these name/value pairs, sex=male and sex=female.1187

Make sure you are only getting your output message if the sex is listed as female.1196

Now, I want you to alter the if statement, so that, instead of having its NOT operation, it is going to have an OR operation.1202

And what I want it to do is output true any time the age provided is less than 25, or if it's greater than 50.1209

And if that condition is met, you should output a message that says, "The user's age is not in the 25-50 age range."1219

The way you can test that is to generate test queries where you set age equal to three different values,1228

to make sure that the test condition is completely evaluated.1234

You set it once equal to a value less than 25, once equal to a value greater than 50, and once to a value in between 25 and 50.1239

And when you run these test queries, the only time that you should see output is when the user's age is not in the 25-50 range.1248

Go ahead and test that and make sure that it is running correctly.1257

Then, I'm going to have you expand your test condition even further, and this is to get practice with using combinations of logical operators.1261

We are going to include an AND operator; and I want the test condition to check if the user is not between 25 and 50, and they are also a male.1269

So, it is going to output a message, if this condition is met, that says, "The user is a male not in the 25-50 age range."1279

And the way you can test that is to use the same query strings that you used in step 5 up here,1289

with a different age provided to test the three different age groups.1294

But then add the name/value pair sex, once with the value male and once with the value female.1300

And you should only see the output when the sex is equal to male.1307

And so, that is going to give you practice working with a combination of logical operators--in this case, the AND and the OR operator.1311

Again, as we had mentioned, the AND always has higher precedence than the OR operator.1316

But practice, when you write your code, using extra parentheses in there to make it explicit to anybody that looks at your code1321

exactly what order the operations are occurring in.1327

Then, I want you to just go ahead and remove the if statement from the script.1332

And we are going to get a little practice with the ternary operator.1335

I want you to create a variable that is an output of a ternary operation, and the ternary operation...1338

the first operand is going to be a test to see if the sex is female.1343

If the sex variable provided by GET is female, it is going to set the variable value to "the user is female."1348

If it's not, it is going to set the variable value to "the user is male."1357

And when you do that, remember that, if the test condition of a ternary operator--the first operand is true, the second operand is output.1361

And if it is false, the third operand is output.1368

The way you can test this is by generating two query strings, one with sex=female and one with sex=male.1371

And what you can do is run this script with both of these query strings, and make sure that you get the correct message output.1378

When you provide sex=male, you get an output that says "the user is male."1388

When it says sex=female, you get the output that says "the user is female."1392

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

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.