What Is PHP?
PHP (PHP: Hypertext Preprocessor) is a server-side scripting language intended to help web developers build dynamic web sites quickly.
How Does PHP Work?
PHP scripts are executed on the server, before the web page is displayed to the user (this is what we mean by “server-side”). The user only sees the end result, which consists of client-side markup and scripts (i.e. HTML, JavaScript, CSS etc). Therefore, the user/browser doesn’t actually see any PHP code. If the user views the source code, all they would see is HTML, JavaScript, CSS etc – they wouldn’t see any PHP code.
You, as the programmer, determine which pieces of HTML will be displayed and when. You do this using PHP code.
What Can PHP Do?
PHP enables you to build large, complex, and dynamic websites. PHP can also increase your productivity enormously, both in development time and maintenance time.
Using PHP, you can build websites that do things such as:
- Allow users to upload files
- Create/read files on the server (for example, the files that your users upload)
- Have a “member’s area” (i.e. via a login page)
- Have a shopping cart
- Present a customized experience (for example, based on users’ browsing history)
- generate dynamic page content
- can create, open, read, write, delete, and close files on the server
- can collect form data
- can send and receive cookies
- can add, delete, modify data in your database
- PHP can encrypt data
- Much, much more
PHP Installation
If you don’t have PHP installed on your computer, here are your best options:
- Download and install PHP
- Find a hosting provider that supports PHP (most hosting providers do)
You may already have a PHP hosting provider. If this is the case, all you need to do is upload your PHP files the same way you would upload any HTML file. If you don’t have a hosting provider, check out this web hosting tutorial for an overview of web hosting.
Downloading PHP
Even if you have a PHP hosting provider, I recommend that you install PHP on your own local environment anyway. That way, you’ll become more familiar with PHP, plus, you should always have a development environment that is separate to your production environment.
You can download PHP from the PHP website here:
http://www.php.net/downloads.php
To assist with the installation, you can view the PHP documentation here:
http://www.php.net/docs.php (Just select your preferred language).
Or, you can jump straight to the English version of the installation notes here:
http://www.php.net/manual/en/install.php
Very good choice is to install Xampp on Windows. A local host for developing whit PHP: https://www.apachefriends.org/it/index.html
PHP Syntax
Creating a PHP file is similar to creating an HTML file. In fact, most PHP files are a mixture of PHP code and HTML.
Creating a PHP File
To create a PHP file, simply do the following:
- Create a new file in your favorite editor
- Type some PHP code
- Save the file with a .php extension
The .php extension tells the web server that it needs to process this as a PHP file. If you accidentally save it with a .html extension the server won’t process your PHP code and the browser will just output it all to the screen.
OK, so that sounds easy. My guess is that you already know how to create a new file and save it, so let’s concentrate on the other bit — the “type some PHP code” bit.
Basic Code Syntax
Scripting Blocks
Every block of PHP code must start with <?php
and end with ?>
. The following example outputs the text “PHP is easy!” to the screen:
<html>
<head>
<title>PHP Syntax Example</title>
</head>
<body>
</body>
</html>
Note: If your server supports it, you can leave off the php bit (so that it starts off like this <? echo…), but I’d recommend you keep it. This way, you won’t run into any compatibility problems that you could have easily avoided.
Semi-Colons
You need to place a semi-colon (;
) at the end of each line of PHP code. This tells the server that a particular statement has finished.
Comments
In the programming world, “comments” refer to small pieces of narrative within the code that can be useful in assisting other programmers interpret the meaning of the code. They can also be useful to yourself if you need to return to a piece of code many months (or years) after you’d written it. These comments aren’t displayed to the user, instead, the server ignores them – they are purely for the programmers!
To write a comment in PHP, you prefix single line comments within two forward slashes (//
) or, if the comment spans multiple lines, you need to open the whole block with a forward slash and asterisk (/*
) then close it with an asterisk and forward slash (*/
).
Example
<?php
// Single line comment
/*
This comment is so
long that it spans
multiple lines.
*/
?>
Displaying the Output
To display PHP files in a browser, you need to type the full http path. For example, something like this: http://localhost/php_syntax_example.php. In other words, you can’t view the file using your file system’s path (like you can with HTML files). For example, you can’t just type something like this: C:\inetpub\wwwroot\php_syntax_example.php.
Using the http path means that you are accessing the file via the web server. The web server knows that any file with a .php extension needs to be processed by PHP.
PHP 5 Variables
Creating (Declaring) PHP Variables
In PHP, a variable starts with the $ sign, followed by the name of the variable:
Example
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
After the execution of the statements above, the variable $txt will hold the value Hello world!, the variable $x will hold the value 5, and the variable $y will hold the value 10.5.
Note: When you assign a text value to a variable, put quotes around the value.
Note: Unlike other programming languages, PHP has no command for declaring a variable. It is created the moment you first assign a value to it.
Think of variables as containers for storing data.
PHP Variables
A variable can have a short name (like x and y) or a more descriptive name (age, carname, total_volume).
Rules for PHP variables:
- A variable starts with the $ sign, followed by the name of the variable
- A variable name must start with a letter or the underscore character
- A variable name cannot start with a number
- A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )
- Variable names are case-sensitive ($age and $AGE are two different variables)
Remember that PHP variable names are case-sensitive!
Output Variables
The PHP echo
statement is often used to output data to the screen.
The following example will show how to output text and a variable:
Example
<?php
$txt = "W3Schools.com";
echo "I love $txt!";
?>
The following example will produce the same output as the example above:
Example
<?php
$txt = "W3Schools.com";
echo "I love " . $txt . "!";
?>
The following example will output the sum of two variables:
Example
<?php
$x = 5;
$y = 4;
echo $x + $y;
?>
Note: You will learn more about the echo
statement and how to output data to the screen in the next chapter.
PHP is a Loosely Typed Language
In the example above, notice that we did not have to tell PHP which data type the variable is.
PHP automatically converts the variable to the correct data type, depending on its value.
Concatenation
When outputting multiple variables and other text to the screen, you can concatenate them (join them together) either with multiple echo statements, or by using one echo statement with a dot (.
) between each part.
<?php
$variable1 = 2;
$variable2 = 9;
$variable3 = $variable1 + $variable2;
echo $variable1 . " + " . $variable2 . " = " . $variable3;
?>
PHP Variables Scope
In PHP, variables can be declared anywhere in the script.
The scope of a variable is the part of the script where the variable can be referenced/used.
PHP has three different variable scopes:
- local
- global
- static
Global and Local Scope
A variable declared outside a function has a GLOBAL SCOPE and can only be accessed outside a function:
Example
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
A variable declared within a function has a LOCAL SCOPE and can only be accessed within that function:
Example
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
You can have local variables with the same name in different functions, because local variables are only recognized by the function in which they are declared.
PHP The global Keyword
The global
keyword is used to access a global variable from within a function.
To do this, use the global
keyword before the variables (inside the function):
Example
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP also stores all global variables in an array called $GLOBALS[index]. The index holds the name of the variable. This array is also accessible from within functions and can be used to update global variables directly.
The example above can be rewritten like this:
Example
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP The static Keyword
Normally, when a function is completed/executed, all of its variables are deleted. However, sometimes we want a local variable NOT to be deleted. We need it for a further job.
To do this, use the static
keyword when you first declare the variable:
Example
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Then, each time the function is called, that variable will still have the information it contained from the last time the function was called.
Note: The variable is still local to the function.
PHP 5 echo and print Statements
In PHP there are two basic ways to get output: echo
and print
.
PHP echo and print Statements
echo
and print
are more or less the same. They are both used to output data to the screen.
The differences are small: echo
has no return value while print
has a return value of 1 so it can be used in expressions. echo
can take multiple parameters (although such usage is rare) while print
can take one argument. echo
is marginally faster than print
.
The PHP echo Statement
The echo
statement can be used with or without parentheses: echo
or echo()
.
Display Text
The following example shows how to output text with the echo
command (notice that the text can contain HTML markup):
Example
<?php
echo "<h2>PHP is Fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This ", "string ", "was ", "made ", "with multiple parameters.";
?>
Display Variables
The following example shows how to output text and variables with the echo
statement:
Example
<?php
$txt1 = "Learn PHP";
$txt2 = "W3Schools.com";
$x = 5;
$y = 4;
echo "<h2>" . $txt1 . "</h2>";
echo "Study PHP at " . $txt2 . "<br>";
echo $x + $y;
?>
PHP 5 Data Types
PHP Data Types
Variables can store data of different types, and different data types can do different things.
PHP supports the following data types:
- String
- Integer
- Float (floating point numbers – also called double)
- Boolean
- Array
- Object
- NULL
- Resource
PHP String
A string is a sequence of characters, like “Hello world!”.
A string can be any text inside quotes. You can use single or double quotes:
Example
<?php
$x = "Hello world!";
$y = 'Hello world!';
echo $x;
echo "<br>";
echo $y;
?>
PHP Integer
An integer data type is a non-decimal number between -2,147,483,648 and 2,147,483,647.
Rules for integers:
- An integer must have at least one digit
- An integer must not have a decimal point
- An integer can be either positive or negative
- Integers can be specified in three formats: decimal (10-based), hexadecimal (16-based – prefixed with 0x) or octal (8-based – prefixed with 0)
In the following example $x is an integer. The PHP var_dump() function returns the data type and value:
Example
<?php
$x = 5985;
var_dump($x);
?>
PHP Float
A float (floating point number) is a number with a decimal point or a number in exponential form.
In the following example $x is a float. The PHP var_dump() function returns the data type and value:
Example
<?php
$x = 10.365;
var_dump($x);
?>
PHP Boolean
A Boolean represents two possible states: TRUE or FALSE.
$x = true;
$y = false;
Booleans are often used in conditional testing. You will learn more about conditional testing in a later chapter of this tutorial.
PHP Array
An array stores multiple values in one single variable.
In the following example $cars is an array. The PHP var_dump() function returns the data type and value:
Example
<?php
$cars = array("Volvo","BMW","Toyota");
var_dump($cars);
?>
You will learn a lot more about arrays in later chapters of this tutorial.
PHP Object
An object is a data type which stores data and information on how to process that data.
In PHP, an object must be explicitly declared.
First we must declare a class of object. For this, we use the class keyword. A class is a structure that can contain properties and methods:
Example
<?php
class Car {
function Car() {
$this->model = "VW";
}
}
// create an object
$herbie = new Car();
// show object properties
echo $herbie->model;
?>
PHP NULL Value
Null is a special data type which can have only one value: NULL.
A variable of data type NULL is a variable that has no value assigned to it.
Tip: If a variable is created without a value, it is automatically assigned a value of NULL.
Variables can also be emptied by setting the value to NULL:
Example
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>
PHP Resource
The special resource type is not an actual data type. It is the storing of a reference to functions and resources external to PHP.
A common example of using the resource data type is a database call.
We will not talk about the resource type here, since it is an advanced topic.
PHP 5 Strings
A string is a sequence of characters, like “Hello world!”.
PHP String Functions
In this chapter we will look at some commonly used functions to manipulate strings.
Get The Length of a String
The PHP strlen()
function returns the length of a string.
The example below returns the length of the string “Hello world!”:
Example
<?php
echo strlen("Hello world!"); // outputs 12
?>
The output of the code above will be: 12.
Count The Number of Words in a String
The PHP str_word_count()
function counts the number of words in a string:
Example
<?php
echo str_word_count("Hello world!"); // outputs 2
?>
The output of the code above will be: 2.
Reverse a String
The PHP strrev()
function reverses a string:
Example
<?php
echo strrev("Hello world!"); // outputs !dlrow olleH
?>
The output of the code above will be: !dlrow olleH.
Search For a Specific Text Within a String
The PHP strpos()
function searches for a specific text within a string.
If a match is found, the function returns the character position of the first match. If no match is found, it will return FALSE.
The example below searches for the text “world” in the string “Hello world!”:
Example
<?php
echo strpos("Hello world!", "world"); // outputs 6
?>
The output of the code above will be: 6.
Tip: The first character position in a string is 0 (not 1).
Replace Text Within a String
The PHP str_replace()
function replaces some characters with some other characters in a string.
The example below replaces the text “world” with “Dolly”:
Example
<?php
echo str_replace("world", "Dolly", "Hello world!"); // outputs Hello Dolly!
?>
The output of the code above will be: Hello Dolly!
Complete PHP String Reference
For a complete reference of all string functions, go to our complete PHP String Reference.
The PHP string reference contains description and example of use, for each function!
PHP 5 Constants
Constants are like variables except that once they are defined they cannot be changed or undefined.
PHP Constants
A constant is an identifier (name) for a simple value. The value cannot be changed during the script.
A valid constant name starts with a letter or underscore (no $ sign before the constant name).
Note: Unlike variables, constants are automatically global across the entire script.
Create a PHP Constant
To create a constant, use the define()
function.
Syntax
define(name, value, case-insensitive)
Parameters:
- name: Specifies the name of the constant
- value: Specifies the value of the constant
- case-insensitive: Specifies whether the constant name should be case-insensitive. Default is false
PHP 5 Operators
PHP Operators
Operators are used to perform operations on variables and values.
PHP divides the operators in the following groups:
- Arithmetic operators
- Assignment operators
- Comparison operators
- Increment/Decrement operators
- Logical operators
- String operators
- Array operators
PHP Arithmetic Operators
The PHP arithmetic operators are used with numeric values to perform common arithmetical operations, such as addition, subtraction, multiplication etc.
Operator | Name | Example | Result |
---|---|---|---|
+ | Addition | $x + $y | Sum of $x and $y |
– | Subtraction | $x – $y | Difference of $x and $y |
* | Multiplication | $x * $y | Product of $x and $y |
/ | Division | $x / $y | Quotient of $x and $y |
% | Modulus | $x % $y | Remainder of $x divided by $y |
** | Exponentiation | $x ** $y | Result of raising $x to the $y’th power (Introduced in PHP 5.6) |
PHP Assignment Operators
The PHP assignment operators are used with numeric values to write a value to a variable.
The basic assignment operator in PHP is “=”. It means that the left operand gets set to the value of the assignment expression on the right.
Assignment | Same as… | Description |
---|---|---|
x = y | x = y | The left operand gets set to the value of the expression on the right |
x += y | x = x + y | Addition |
x -= y | x = x – y | Subtraction |
x *= y | x = x * y | Multiplication |
x /= y | x = x / y | Division |
x %= y | x = x % y | Modulus |
PHP Comparison Operators
The PHP comparison operators are used to compare two values (number or string):
Operator | Name | Example | Result |
---|---|---|---|
== | Equal | $x == $y | Returns true if $x is equal to $y |
=== | Identical | $x === $y | Returns true if $x is equal to $y, and they are of the same type |
!= | Not equal | $x != $y | Returns true if $x is not equal to $y |
<> | Not equal | $x <> $y | Returns true if $x is not equal to $y |
!== | Not identical | $x !== $y | Returns true if $x is not equal to $y, or they are not of the same type |
> | Greater than | $x > $y | Returns true if $x is greater than $y |
< | Less than | $x < $y | Returns true if $x is less than $y |
>= | Greater than or equal to | $x >= $y | Returns true if $x is greater than or equal to $y |
<= | Less than or equal to | $x <= $y | Returns true if $x is less than or equal to $y |
PHP Increment / Decrement Operators
The PHP increment operators are used to increment a variable’s value.
The PHP decrement operators are used to decrement a variable’s value.
Operator | Name | Description |
---|---|---|
++$x | Pre-increment | Increments $x by one, then returns $x |
$x++ | Post-increment | Returns $x, then increments $x by one |
–$x | Pre-decrement | Decrements $x by one, then returns $x |
$x– | Post-decrement | Returns $x, then decrements $x by one |
PHP Logical Operators
The PHP logical operators are used to combine conditional statements.
Operator | Name | Example | Result |
---|---|---|---|
and | And | $x and $y | True if both $x and $y are true |
or | Or | $x or $y | True if either $x or $y is true |
xor | Xor | $x xor $y | True if either $x or $y is true, but not both |
&& | And | $x && $y | True if both $x and $y are true |
|| | Or | $x || $y | True if either $x or $y is true |
! | Not | !$x | True if $x is not true |
PHP String Operators
PHP has two operators that are specially designed for strings.
Operator | Name | Example | Result |
---|---|---|---|
. | Concatenation | $txt1 . $txt2 | Concatenation of $txt1 and $txt2 |
.= | Concatenation assignment | $txt1 .= $txt2 | Appends $txt2 to $txt1 |
PHP Array Operators
The PHP array operators are used to compare arrays.
Operator | Name | Example | Result |
---|---|---|---|
+ | Union | $x + $y | Union of $x and $y |
== | Equality | $x == $y | Returns true if $x and $y have the same key/value pairs |
=== | Identity | $x === $y | Returns true if $x and $y have the same key/value pairs in the same order and of the same types |
!= | Inequality | $x != $y | Returns true if $x is not equal to $y |
<> | Inequality | $x <> $y | Returns true if $x is not equal to $y |
!== | Non-identity | $x !== $y | Returns true if $x is not identical to $y |
PHP 5 if…else…elseif Statements
Conditional statements are used to perform different actions based on different conditions.
PHP Conditional Statements
Very often when you write code, you want to perform different actions for different conditions. You can use conditional statements in your code to do this.
In PHP we have the following conditional statements:
if
statement – executes some code if one condition is trueif...else
statement – executes some code if a condition is true and another code if that condition is falseif...elseif....else
statement – executes different codes for more than two conditionsswitch
statement – selects one of many blocks of code to be executed
PHP – The if Statement
The if
statement executes some code if one condition is true.
Syntax
if (condition) {
code to be executed if condition is true;
}
The example below will output “Have a good day!” if the current time (HOUR) is less than 20:
Example
<?php
$t = date(“H”);
if ($t < “20”) {
echo “Have a good day!”;
}
?>
PHP – The if…else Statement
The if....else
statement executes some code if a condition is true and another code if that condition is false.
Syntax
if (condition) {
code to be executed if condition is true;
} else {
code to be executed if condition is false;
}
The example below will output “Have a good day!” if the current time is less than 20, and “Have a good night!” otherwise:
Example
<?php
$t = date(“H”);
if ($t < “20”) {
echo “Have a good day!”;
} else {
echo “Have a good night!”;
}
?>
PHP – The if…elseif….else Statement
The if....elseif...else
statement executes different codes for more than two conditions.
Syntax
if (condition) {
code to be executed if this condition is true;
} elseif (condition) {
code to be executed if this condition is true;
} else {
code to be executed if all conditions are false;
}
The example below will output “Have a good morning!” if the current time is less than 10, and “Have a good day!” if the current time is less than 20. Otherwise it will output “Have a good night!”:
Example
<?php
$t = date(“H”);
if ($t < “10”) {
echo “Have a good morning!”;
} elseif ($t < “20”) {
echo “Have a good day!”;
} else {
echo “Have a good night!”;
}
?>