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:

  1. Create a new file in your favorite editor
  2. Type some PHP code
  3. 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> <?php
  echo "PHP is easy!";
?>
</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 scopefunction 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(namevaluecase-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 true
  • if...else statement – executes some code if a condition is true and another code if that condition is false
  • if...elseif....else statement – executes different codes for more than two conditions
  • switch 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!”;
}
?>