CPGM21X1 - Sheridan College

Download Report

Transcript CPGM21X1 - Sheridan College

SYST 28043
Web Technologies
Intro to PHP
PHP
PHP: Hypertext Preprocessor
A recursive acronym
Currently on version 5.4.4
http://www.php.net
Developed as a set of “Personal Home
page Tools”
Rasmus Lerdorf
Small scripts to do things like track visitors
Eventually became the PHP we know today
7/20/2015
Wendi Jollymore, ACES
2
PHP - Advantages
Free, Open Source
Fast
Runs on most operating systems
Easy to learn – has C/Java/Perl type of
syntax
Loosely-typed
Procedure-oriented or object-oriented
Powerful string processing and regular
expression libraries
Very large and active developer
community
7/20/2015
Wendi Jollymore, ACES
3
Testing PHP
See Notes for this lesson, “Testing PHP”
1.
2.
7/20/2015
Make sure your web server is running!
Open a new PHP Project in Aptana
Wendi Jollymore, ACES
4
PHP Syntax
<?php
/* all your php code here */
?>
The <?php ?> tags contain the php code
All executing statements end in a semicolon
You can put your entire page in the tags
You can embed the PHP throughout your
XHTML code
See examples in the notes
7/20/2015
Wendi Jollymore, ACES
5
PHP Syntax
Echo statement
Sends output to the page
Double-quotes and single-quotes
mean different things
You can use escape sequences like \n
7/20/2015
Wendi Jollymore, ACES
6
PHP Example
echo "<h3>This is a PHP Page by
Kaluha</h3>";
echo "<p>Today I'm beginning to learn some
PHP. I'm liking it so far!</p>";
echo "<hr>";
echo "<p>Email me at <a
href=\"mailto:[email protected]\">
[email protected]</a>! </p>";
7/20/2015
Wendi Jollymore, ACES
7
PHP Example
Load the page in your browser
View the browser source!
Use the \n sequence to break up
long lines
Makes browser source easier to
read
Add the \n to your code statements
and reload
7/20/2015
Wendi Jollymore, ACES
8
PHP Example
Add this:
echo "<p>Current Date and Time: ";
echo date("l jS \of F Y h:i:s A");
echo "</p>\n";
Do the date() exercise in the notes
7/20/2015
Wendi Jollymore, ACES
9
PHP Commenting
Single-line comments can start with
// or #
# this is a comment
// this is a comment
Multi-line comments can be
enclosed in /* and */
/* this is a multiline comment.
*/
7/20/2015
Wendi Jollymore, ACES
10
Identifiers
Rules for Identifiers:
identifier names are case-sensitive
identifiers must start with a letter or
underscore character
identifier names may not contain
spaces
identifiers must be made up of letters
and numbers and symbols from ASCII
127 to ASCII 255
7/20/2015
Wendi Jollymore, ACES
11
Variables
Called “scalars”
You don’t have to declare variables
But you can
To declare a variable, just initialize
it:
$userName="";
$dateFlag = 1;
7/20/2015
Wendi Jollymore, ACES
12
Variables
Scalars
Variables that hold a single value
Always starts with a $
Value can be one of:
Boolean
True or false
False = 0; any other integer is true
Integer
Floating-point
string
7/20/2015
Wendi Jollymore, ACES
13
Constants
Constants are declared using the
define() method:
define(“PST_RATE”, .08);
Defines a constant called PST_RATE
with an initial value of .08
Use it just like you would use any
other scalar:
$pstAmt = $subTotal * PST_RATE;
7/20/2015
Wendi Jollymore, ACES
14
Escape Sequences
\b
\f
\n
\r
\t
\’
\”
\\
7/20/2015
backspace
Form feed
New-line
Carriage return
Tab
Single-quote
Double-quote
Backslash
Wendi Jollymore, ACES
15
Operators
Arithmetic Operators
+
*
/
%
addition
subtraction
multiplication
division
modulus
Pre- and post- unary operators:
++
-7/20/2015
unary increment
unary decrement
Wendi Jollymore, ACES
16
Operators
Assignment Operators
=
+=
-=
*=
/=
%=
7/20/2015
equals
plus-equals
minus-equals
multiply-equals
divide-equals
modulus-equals
Wendi Jollymore, ACES
17
Operators
Relational Operators
==
!=
>
>=
<
<=
equal to
not equal to
greater than
greater than or equal to
less than
less than or equal to
Logical Operators
&&, AND
||, OR
! , NOT
7/20/2015
AND Operator
OR Operator
NOT Operator
Wendi Jollymore, ACES
18
Operators
String Operators
.
.=
Concatenation operator
Assignment-Concatenation
Examples:
echo “Value: “.$value.”</p>\n”;
$value .= $newValue;
7/20/2015
Wendi Jollymore, ACES
19
Operators
Conditional Operator
condition ? retValueTrue : retValueFalse;
If condition is true, retValueTrue is returned
If condition is false, retValueFalse is returned
Example:
$validNum = ($intValue > 0) ? “valid” :
“invalid”;
7/20/2015
Wendi Jollymore, ACES
20
String Interpolation
Double-Quotes:
Variables and escape sequences are parsed
Example:
$catName = "Mr. Bibs";
echo "Wendi's cat's name is
$catName.\nThis is a new line.";
Output:
Wendi's cat's name is Mr. Bibs.This is a
new line.
Browser Source:
Wendi's cat's name is Mr. Bibs.
This is a new line.
7/20/2015
Wendi Jollymore, ACES
21
String Interpolation
Single-Quotes:
Variables and escape sequences are not
interpreted, except where it might cause a
syntax error
Example:
echo 'My variable is $catName and it\'s \n
case-sensitive.';
Output:
My variable is $catName and it's \n casesensitive.
7/20/2015
Wendi Jollymore, ACES
22
String Interpolation
Heredoc:
Using labels to mark larger passages of text
Content between labels is interpreted as if in
double-quotes
But you don’t have to escape double-quotes
Starting and ending labels must match
Labels must be in upper-case
Starting label must be preceeded by <<<
Ending label must be first on a blank line
Not even spaces in front of it
7/20/2015
Wendi Jollymore, ACES
23
String Interpolation
Heredoc Example:
<?php
$website = "http://www.thinkgeek.com";
echo <<<GEEK
<p>One of my favourite web sites is <a href =
"$website">Thinkgeek.com</a>. This is a great
site for geeks and coders because they have lots
of caffeine products (drinks, candy, coffee
mugs, etc) and lots of what they refer to as
<i>Cube Goodies</i>. Cube goodies are little
toys that keep you amused in your office
cube.</p>
GEEK;
?>
7/20/2015
Wendi Jollymore, ACES
24
Control Structures
If-Statements
if (condition){
// code body
}
if (condition){
// code body
} else {
// code body
}
7/20/2015
Wendi Jollymore, ACES
25
Exercise
Do the Tip Calculator exercise in the
notes
Pass the input values using GET
method name=value pairs
E.g.
localhost/webtech/projetName/ex1.p
hp?billAmt=35.55&tipPercent=15
7/20/2015
Wendi Jollymore, ACES
26
Iteration
Pre-Test and Post-Test Loop
while(condition) {
// code body
}
do {
// code body
} while (condition);
7/20/2015
Wendi Jollymore, ACES
27
Iteration
For Loops:
for (init; condition; cont) {
// code body
}
foreach (item as collectionType) {
// code body
}
7/20/2015
Wendi Jollymore, ACES
28
Exercises
Do the Multiplication Table exercise
in the notes
7/20/2015
Wendi Jollymore, ACES
29
Arrays
Arrays in PHP work similarly to
arrays in other languages
Arrays are 0-based by default
Array elements are identified with
indexes or subscripts
7/20/2015
Wendi Jollymore, ACES
30
Creating Arrays
Using the array() function:
$arrayName = array(value1, value2,
value3, …);
Example:
$languages = array(“Java”, “PHP”, “Perl”,
“C#”, “Visual Basic”);
Creates an array called $languages
with 5 elements (indexed 0 to 4)
7/20/2015
Wendi Jollymore, ACES
31
Creating Arrays
Hard coding the arrays
$languages[0] = “Java”;
$languages[1] = “PHP”;
…
You can actually do this without the
indexes:
$languages[] = “Java”;
$languages[] = “PHP”;
Indexes will default 0, 1, 2..
7/20/2015
Wendi Jollymore, ACES
32
Iterating Through Arrays
Foreach loop:
foreach($arrayName as $arrayElement) {
// code
}
Example:
foreach($languages as $aLang) {
echo $aLang.”<br />”;
}
7/20/2015
Wendi Jollymore, ACES
33
Length of Arrays
count() function:
foreach($grades as $g) {
$totalGrade += $g;
}
$avg = $totalGrade / count($grades);
echo "Average Grade: ".$avg;
7/20/2015
Wendi Jollymore, ACES
34
Associative Arrays
Elements consist of a key and
value pair
The key is the index
The value is the content of the array
element
Keys must be unique
Keys can be strings
E.g. $grades[“prog10082”] = 75;
7/20/2015
Wendi Jollymore, ACES
35
Associative Arrays
Creating an associative array:
$myGrades = array("PROG10082" => 89.5, "PROG24178"
=> 85.0, "INFO16029" => 91.5, "SYST13416" =>
80.5);
$myGrades array contains 4 elements
7/20/2015
“PROG10082”
89.5
“PROG24178”
85.0
“INFO16029”
91.5
“SYST13416”
80.5
Wendi Jollymore, ACES
36
Associative Arrays
Using foreach() with associative arrays:
foreach(array_expr as $key => $value) {
// statements
}
Example:
echo "<p>My Grades:<br />";
foreach($myGrades as $course => $mark) {
echo “<p><b>$course: </b>”;
echo “$mark<br />\n”;
}
echo "</p>\n";
7/20/2015
Wendi Jollymore, ACES
37
Adding Array Elements
Arrays in PHP are dynamic
The number of elements can change while
the program executes
You can add elements to an array during
run-time:
$languages[] = “Delphi”;
$myGrades[“SYST28043”] = 79.1;
7/20/2015
Wendi Jollymore, ACES
38
Adding Array Elements
array_push($arrayName, $element) function
Adds an element to the end of an array
You can add multiple elements:
array_push($arrayName, $el1, $el2, $el3);
array_unshift($arrayName, $element) function
Adds an element to the beginning of an array
You can add multiple elements just as you can with
array_push
array_push($languages, “Delphi”, “C++”);
array_unshift($languages, “COBOL”);
7/20/2015
Wendi Jollymore, ACES
39
Removing Array Elements
$element = array_pop($arrayName)
function
Removes the last element and returns it
$element = array_shift($arrayName)
function
Removes the first element and returns it
$lastEl = array_pop($languages);
$firstEl = array_shift($languages);
7/20/2015
Wendi Jollymore, ACES
40
Array Exercises
Do the array exercises in the notes.
7/20/2015
Wendi Jollymore, ACES
41
Next Class:
Functions
Variable Scope
Form Processing
Form Validation
7/20/2015
Wendi Jollymore, ACES
42