PHP: Hypertext Preprocessor (Lecture) Steffanie D. Maglasang
PHP: Hypertext Preprocessor (Lecture) Steffanie D. Maglasang
[Lecture]
Steffanie D. Maglasang
PHP
PHP is a server-side scripting language.
What You Should Already Know
Before you continue you should have a basic understanding of the following:
HTML
JavaScript
What is PHP?
PHP supports many databases (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL,
Generic ODBC, etc.)
What is MySQL?
PHP + MySQL
PHP combined with MySQL are cross-platform (you can develop in Windows and
serve on a Unix platform)
Why PHP?
Where to Start?
To get access to a web server with PHP support, you can:
Install Apache (or IIS) on your own server, install PHP, and MySQL
Or find a web hosting plan with PHP and MySQL support
A PHP file normally contains HTML tags, just like an HTML file, and some PHP scripting code.
Below, we have an example of a simple PHP script which sends the text "Hello World" to the
browser:
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
Each code line in PHP must end with a semicolon. The semicolon is a separator and is used
to distinguish one set of instructions from another.
Comments in PHP
In PHP, we use // to make a single-line comment or /* and */ to make a large comment
block.
<html>
<body>
<?php
//This is a comment
/*
This is
a comment
block
*/
?>
</body>
</html>
Variables in PHP
Variables are used for storing values, like text strings, numbers or arrays.
When a variable is declared, it can be used over and over again in your script.
All variables in PHP start with a $ sign symbol.
The correct way of declaring a variable in PHP:
$var_name = value;
New PHP programmers often forget the $ sign at the beginning of the variable. In that case
it will not work.
Let's try creating a variable containing a string, and a variable containing a number:
A variable name should not contain spaces. If a variable name is more than one
word, it should be separated with an underscore ($my_string), or with capitalization
($myString)
After we create a string we can manipulate it. A string can be used directly in a
function or it can be stored in a variable.
Below, the PHP script assigns the text "Hello World" to a string variable called $txt:
<?php
$txt="Hello World";
echo $txt;
?>
Now, lets try to use some different functions and operators to manipulate the string.
<?php
$txt1="Hello World!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
If we look at the code above you see that we used the concatenation operator two
times. This is because we had to insert a third string (a space character), to separate
the two strings.
<?php
echo strlen("Hello world!");
?>
The length of a string is often used in loops or other functions, when it is important
to know when the string ends. (i.e. in a loop, we would want to stop the loop after
the last character in the string).
The strpos() function
<?php
echo strpos("Hello world!","world");
?>
The position of the string "world" in our string is position 6. The reason that it is 6
(and not 7), is that the first position in the string is 0, and not 1.
Description
Example
Result
Addition
x=2
x+2
Subtraction
x=2
5-x
Multiplication
x=4
x*5
20
Division
15/5
5/2
3
2.5
5%2
10%8
10%2
1
2
0
++
Increment
x=5
x++
x=6
Decrement
x=5
x--
x=4
Assignment Operators
Operator
Example
Is The Same As
x=y
x=y
+=
x+=y
x=x+y
-=
x-=y
x=x-y
*=
x*=y
x=x*y
/=
x/=y
x=x/y
.=
x.=y
x=x.y
%=
x%=y
x=x%y
Comparison Operators
Operator
Description
Example
==
is equal to
!=
is not equal
<>
is not equal
>
is greater than
<
is less than
>=
<=
Logical Operators
Operator
Description
Example
&&
and
x=6
y=3
(x < 10 && y > 1) returns true
||
or
x=6
y=3
(x==5 || y==5) returns false
not
x=6
y=3
!(x==y) returns true
if statement - use this statement to execute some code only if a specified condition
is true
if...else statement - use this statement to execute some code if a condition is true
and another code if the condition is false
switch statement - use this statement to select one of many blocks of code to be
executed
The if Statement
Use the if statement to execute some code only if a specified condition is true.
Syntax
if (condition) code to be executed if condition is true;
The following example will output "Have a nice weekend!" if the current day is Friday:
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri") echo "Have a nice weekend!";
?>
</body>
</html>
Notice that there is no ..else.. in this syntax. The code is executed only if the specified
condition is true.
The if...else Statement
Example
The following example will output "Have a nice weekend!" if the current day is Friday,
otherwise it will output "Have a nice day!":
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri"){
echo "Have a nice weekend!";
}
else{
echo "Have a nice day!";
}
?>
</body>
</html>
If more than one line should be executed if a condition is true/false, the lines should be
enclosed within curly braces:
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
{
echo "Hello!<br />";
echo "Have a nice weekend!";
echo "See you on Monday!";
Example
The following example will output "Have a nice weekend!" if the current day is Friday, and
"Have a nice Sunday!" if the current day is Sunday. Otherwise it will output "Have a nice
day!":
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
echo "Have a nice weekend!";
elseif ($d=="Sun")
echo "Have a nice Sunday!";
else
echo "Have a nice day!";
?>
</body>
</html>
Conditional statements are used to perform different actions based on different conditions.
Syntax
switch (n)
{
case label1:
code to be executed if n=label1;
break;
case label2:
code to be executed if n=label2;
break;
default:
code to be executed if n is different from both label1 and label2;
}
This is how it works: First we have a single expression n (most often a variable), that is
evaluated once. The value of the expression is then compared with the values for each case
in the structure. If there is a match, the block of code associated with that case is executed.
Use break to prevent the code from running into the next case automatically. The default
statement is used if no match is found.
Example
<html>
<body>
<?php
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
However, what if you want to loop through the cars and find a specific one? And what if you
had not 3 cars, but 300?
The best solution here is to use an array!
An array can hold all your variable values under a single name. And you can access the
values by referring to the array name.
Each element in the array has its own index so that it can be easily accessed.
In PHP, there are three kind of arrays:
Numeric Arrays
A numeric array stores each array element with a numeric index.
There are two methods to create a numeric array.
1. In the following example the index are automatically assigned (the index starts at 0):
Example
In the following example you access the variable values by referring to the array name and
index:
<?php
$cars[0]="Saab";
$cars[1]="Volvo";
$cars[2]="BMW";
$cars[3]="Toyota";
echo $cars[0] . " and " . $cars[1] . " are Swedish cars.";
?>
Associative Arrays
An associative array, each ID key is associated with a value.
When storing data about specific named values, a numerical array is not always the best
way to do it.
With associative arrays we can use the values as keys and assign values to them.
Example 1
In this example we use an array to assign ages to the different persons:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
Multidimensional Arrays
In a multidimensional array, each element in the main array can also be an array. And each
element in the sub-array can be an array, and so on.
Example
In this example we create a multidimensional array, with automatically assigned ID keys:
$families = array
(
"Griffin"=>array
(
"Peter",
"Lois",
"Megan"
),
"Quagmire"=>array
(
The array above would look like this if written to the output:
Array
(
[Griffin] => Array
(
[0] => Peter
[1] => Lois
[2] => Megan
)
[Quagmire] => Array
(
[0] => Glenn
)
[Brown] => Array
(
[0] => Cleveland
[1] => Loretta
[2] => Junior
)
)
Example 2
Lets try displaying a single value from the array above:
echo "Is " . $families['Griffin'][2] .
" a part of the Griffin family?";
Example
The example below defines a loop that starts with i=1. The loop will continue to run as long
as i is less than, or equal to 5. i will increase by 1 each time the loop runs:
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br />";
$i++;
}
?>
</body>
Output:
The
The
The
The
The
number
number
number
number
number
is
is
is
is
is
1
2
3
4
5
Example
The example below defines a loop that starts with i=1. It will then increment i with 1, and
write some output. Then the condition is checked, and the loop will continue to run as long
as i is less than, or equal to 5:
<html>
<body>
<?php
$i=1;
do
{
$i++;
echo "The number is " . $i . "<br />";
}
while ($i<=5);
?>
</body>
</html>
number
number
number
number
number
is
is
is
is
is
2
3
4
5
6
Parameters:
init: Mostly used to set a counter (but can be any code to be executed once at the
beginning of the loop)
condition: Evaluated for each loop iteration. If it evaluates to TRUE, the loop
continues. If it evaluates to FALSE, the loop ends.
increment: Mostly used to increment a counter (but can be any code to be executed
at the end of the loop)
Note: Each of the parameters above can be empty, or have multiple expressions (separated
by commas).
Example
The example below defines a loop that starts with i=1. The loop will continue to run as long
as i is less than, or equal to 5. i will increase by 1 each time the loop runs:
<html>
<body>
<?php
for ($i=1; $i<=5; $i++)
{
echo "The number is " . $i . "<br />";
}
?>
Output:
The
The
The
The
The
number
number
number
number
number
is
is
is
is
is
1
2
3
4
5
For every loop iteration, the value of the current array element is assigned to $value (and
the array pointer is moved by one) - so on the next loop iteration, you'll be looking at the
next array value.
Example
The following example demonstrates a loop that will print the values of the given array:
<html>
<body>
<?php
$x=array("one","two","three");
for
each ($x as $value)
{
echo $value . "<br />";
}
?>
</body>
Output:
one
two
three
The real power of PHP comes from its functions.
In PHP, there are more than 700 built-in functions.
PHP Functions
Create a PHP Function
A function will be executed by a call to the function.
Syntax
function functionName()
{
code to be executed;
}
Give the function a name that reflects what the function does
The function name can start with a letter or underscore (not a number)
Example
A simple function that writes my name when it is called:
<html>
<body>
<?php
function writeName()
{
echo "Kai Jim Refsnes";
}
echo "My name is ";
writeName();
?>
</body>
</html>
Output:
My name is Kai Jim Refsnes
PHP Functions - Adding parameters
To add more functionality to a function, we can add parameters. A parameter is just like a
variable.
Parameters are specified after the function name, inside the parentheses.
Example 1
The following example will write different first names, but equal last name:
<html>
<body>
<?php
function writeName($fname)
{
echo $fname . " Refsnes.<br />";
}
echo "My name is ";
writeName("Kai Jim");
echo "My sister's name is ";
writeName("Hege");
echo "My brother's name is ";
writeName("Stale");
?>
</body>
</html>
Output:
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes.
Example 2
The following function has two parameters:
<html>
<body>
<?php
function writeName($fname,$punctuation)
{
echo $fname . " Refsnes" . $punctuation . "<br />";
}
echo "My name is ";
writeName("Kai Jim",".");
echo "My sister's name is ";
writeName("Hege","!");
echo "My brother's name is ";
writeName("Stle","?");
?>
</body>
</html>
Output:
My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes!
My brother's name is Stle Refsnes?
PHP Functions - Return values
To let a function return a value, use the return statement.
Example
<html>
<body>
<?php
function add($x,$y)
{
$total=$x+$y;
Output:
1 + 16 = 17
The PHP $_GET and $_POST variables are used to retrieve information from forms, like user
input.
PHP Form Handling
The most important thing to notice when dealing with HTML forms and PHP is that any form
element in an HTML page will automatically be available to your PHP scripts
Example
The example below contains an HTML form with two input fields and a submit button:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
When a user fills out the form above and click on the submit button, the form data is sent to
a PHP file, called "welcome.php":
"welcome.php" looks like this:
<html>
<body>
When the user clicks the "Submit" button, the URL sent to the server could look something
like this:
http://www.w3schools.com/welcome.php?fname=Peter&age=37
When the user clicks the "Submit" button, the URL will look like this:
http://www.w3schools.com/welcome.php
The "welcome.php" file can now use the $_POST function to collect form data (the names of
the form fields will automatically be the keys in the $_POST array):