0% found this document useful (0 votes)
202 views

Introduction and Basics of PHP

PHP started as a simple tool created by Rasmus Lerdorf in 1994 and has evolved significantly since then. It began as a set of CGI binaries written in C and was later rewritten in PHP/FI which included basic PHP functionality. PHP has undergone several major rewrites and version updates since, each time expanding its features and capabilities. PHP is now a widely used open source scripting language that is embedded within HTML and used to manage dynamic web content and databases. It has a C-like syntax and is integrated with popular databases like MySQL.

Uploaded by

Krutika Salotagi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
202 views

Introduction and Basics of PHP

PHP started as a simple tool created by Rasmus Lerdorf in 1994 and has evolved significantly since then. It began as a set of CGI binaries written in C and was later rewritten in PHP/FI which included basic PHP functionality. PHP has undergone several major rewrites and version updates since, each time expanding its features and capabilities. PHP is now a widely used open source scripting language that is embedded within HTML and used to manage dynamic web content and databases. It has a C-like syntax and is integrated with popular databases like MySQL.

Uploaded by

Krutika Salotagi
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 51

Introduction and Basics of PHP:

History of PHP

PHP as it's known today is actually the successor to a product named PHP/FI. Created in 1994 by
Rasmus Lerdorf, the very first incarnation of PHP was a simple set of Common Gateway
Interface (CGI) binaries written in the C programming language. Originally used for tracking
visits to his online resume, he named the suite of scripts "Personal Home Page Tools," more
frequently referenced as "PHP Tools." Over time, more functionality was desired, and Rasmus
rewrote PHP Tools, producing a much larger and richer implementation. This new model was
capable of database interaction and more, providing a framework upon which users could
develop simple dynamic web applications such as guestbooks. In June of 1995, Rasmus
» released the source code for PHP Tools to the public, which allowed developers to use it as
they saw fit. This also permitted - and encouraged - users to provide fixes for bugs in the code,
and to generally improve upon it.

In September of that year, Rasmus expanded upon PHP and - for a short time - actually dropped
the PHP name. Now referring to the tools as FI (short for "Forms Interpreter"), the new
implementation included some of the basic functionality of PHP as we know it today. It had Perl-
like variables, automatic interpretation of form variables, and HTML embedded syntax. The
syntax itself was similar to that of Perl, albeit much more limited, simple, and somewhat
inconsistent. In fact, to embed the code into an HTML file, developers had to use HTML
comments. Though this method was not entirely well-received, FI continued to enjoy growth and
acceptance as a CGI tool --- but still not quite as a language. However, this began to change the
following month; in October, 1995, Rasmus released a complete rewrite of the code. Bringing
back the PHP name, it was now (briefly) named "Personal Home Page Construction Kit," and
was the first release to boast what was, at the time, considered an advanced scripting interface.
The language was deliberately designed to resemble C in structure, making it an easy adoption
for developers familiar with C, Perl, and similar languages. Having been thus far limited to
UNIX and POSIX-compliant systems, the potential for a Windows NT implementation was
being explored.

The code got another complete makeover, and in April of 1996, combining the names of past
releases, Rasmus introduced PHP/FI. This second-generation implementation began to truly
evolve PHP from a suite of tools into a programming language in its own right. It included built-
in support for DBM, mSQL, and Postgres95 databases, cookies, user-defined function support,
and much more. That June, PHP/FI was given a version 2.0 status. An interesting fact about this,
however, is that there was only one single full version of PHP 2.0. When it finally graduated
from beta status in November, 1997, the underlying parsing engine was already being entirely
rewritten.

Though it lived a short development life, it continued to enjoy a growing popularity in still-
young world of web development. In 1997 and 1998, PHP/FI had a cult of several thousand users
around the world. A Netcraft survey as of May, 1998, indicated that nearly 60,000 domains
reported having headers containing "PHP", indicating that the host server did indeed have it
installed. This number equated to approximately 1% of all domains on the Internet at the time.
Despite these impressive figures, the maturation of PHP/FI was doomed to limitations; while
there were several minor contributors, it was still primarily developed by an individual.

PHP 3

PHP 3.0 was the first version that closely resembles PHP as it exists today. Finding PHP/FI 2.0
still inefficient and lacking features they needed to power an eCommerce application they were
developing for a university project, Andi Gutmans and Zeev Suraski of Tel Aviv, Israel, began
yet another complete rewrite of the underlying parser in 1997. Approaching Rasmus online, they
discussed various aspects of the current implementation and their redevelopment of PHP. In an
effort to improve the engine and start building upon PHP/FI's existing user base, Andi, Rasmus,
and Zeev decided to collaborate in the development of a new, independent programming
language. This entirely new language was released under a new name, that removed the
implication of limited personal use that the PHP/FI 2.0 name held. It was renamed simply 'PHP',
with the meaning becoming a recursive acronym - PHP: Hypertext Preprocessor.

One of the biggest strengths of PHP 3.0 was its strong extensibility features. In addition to
providing end users with a mature interface for multiple databases, protocols, and APIs, the ease
of extending the language itself attracted dozens of developers who submitted a variety of
modules. Arguably, this was the key to PHP 3.0's tremendous success. Other key features
introduced in PHP 3.0 included object-oriented programming support and a far more powerful
and consistent language syntax.

In June, 1998, with many new developers from around the world joining the effort, PHP 3.0 was
announced by the new PHP Development Team as the official successor to PHP/FI 2.0. Active
development of PHP/FI 2.0, which had all-but ceased as of November of the previous year, was
now officially ended. After roughly nine months of open public testing, when the announcement
of the official release of PHP 3.0 came, it was already installed on over 70,000 domains around
the world, and was no longer limited to POSIX-compliant operating systems. A relatively small
share of the domains reporting PHP as installed were hosted on servers running Windows 95, 98,
and NT, and Macintosh. At its peak, PHP 3.0 was installed on approximately 10% of the web
servers on the Internet.

PHP 4

By the winter of 1998, shortly after PHP 3.0 was officially released, Andi Gutmans and Zeev
Suraski had begun working on a rewrite of PHP's core. The design goals were to improve
performance of complex applications, and improve the modularity of PHP's code base. Such
applications were made possible by PHP 3.0's new features and support for a wide variety of
third party databases and APIs, but PHP 3.0 was not designed to handle such complex
applications efficiently.

The new engine, dubbed 'Zend Engine' (comprised of their first names, Zeev and Andi), met
these design goals successfully, and was first introduced in mid 1999. PHP 4.0, based on this
engine, and coupled with a wide range of additional new features, was officially released in May
2000, almost two years after its predecessor. In addition to the highly improved performance of
this version, PHP 4.0 included other key features such as support for many more web servers,
HTTP sessions, output buffering, more secure ways of handling user input and several new
language constructs.

PHP 5

PHP 5 was released in July 2004 after long development and several pre-releases. It is mainly
driven by its core, the Zend Engine 2.0 with a new object model and dozens of other new
features.

PHP's development team includes dozens of developers, as well as dozens others working on
PHP-related and supporting projects, such as PEAR, PECL, and documentation, and an
underlying network infrastructure of well over one-hundred individual web servers on six of the
seven continents of the world. Though only an estimate based upon statistics from previous
years, it is safe to presume PHP is now installed on tens or even perhaps hundreds of millions of
domains around the world.

PHP is better than Its alternatives


PHP started out as a small open source project that evolved as more and more people
found out how useful it was. Rasmus Lerdorf unleashed the first version of PHP way back
in 1994.
PHP is a recursive acronym for "PHP: Hypertext Preprocessor".
PHP is a server side scripting language that is embedded in HTML. It is used to
manage dynamic content, databases, session tracking, even build entire ecommerce
sites.
It is integrated with a number of popular databases, including MySQL, PostgreSQL,
Oracle, Sybase, Informix, and Microsoft SQL Server.
PHP is pleasingly zippy in its execution, especially when compiled as an Apache
module on the Unix side. The MySQL server, once started, executes even very
complex queries with huge result sets in record-setting time.
PHP supports a large number of major protocols such as POP3, IMAP, and LDAP.
PHP4 added support for Java and distributed object architectures (COM and
CORBA), making n-tier development a possibility for the first time.
PHP is forgiving: PHP language tries to be as forgiving as possible.

PHP Syntax is C-Like.

PHP performs system functions, i.e. from files on a system it can create, open, read, write,
and close them. The other uses of PHP are:

PHP can handle forms, i.e. gather data from files, save data to a file, thru email
you can send data, return data to the user.
You add, delete, modify elements within your database thru PHP.
Access cookies variables and set cookies.
Using PHP, you can restrict users to access some pages of your website.
It can encrypt data.

Hardware and Software requirements

PHP Installation on Windows NT/2000/XP with Apache


To install Apache with PHP 5 on Windows follow the following steps. If your PHP and Apache
versions are different, then please take care accordingly.
Download Apache server from www.apache.org/dist/httpd/binaries/win32. You
want the current stable release version with the no_src.msi extension. Double-click
the installer file to install; C:\Program Files is a common location. The installer will
also ask you whether you want to run Apache as a service or from the command
line or DOS prompt. We recommend you do not install as a service, as this may
cause problems with startup.
Extract the PHP binary archive using your unzip utility; C:\PHP is a common
location.
Copy some .dll files from your PHP directory to your system directory (usually
C:\Windows). You need php5ts.dll for every case. You will also probably need to
copy the file corresponding to your Web server module -
C:\PHP\Sapi\php5apache.dll. to your Apache modules directory. It's possible that
you will also need others from the dlls subfolder, but start with the two mentioned
previously and add more if you need them.
Copy either php.ini-dist or php.ini-recommended (preferably the latter) to your
Windows directory, and rename it php.ini. Open this file in a text editor (for
example, Notepad). Edit this file to get configuration directives; At this point, we
highly recommend that new users set error reporting to E_ALL on their
development machines.

Tell your Apache server where you want to serve files from and what extension(s)
you want to identify PHP files (.php is the standard, but you can use .html, .phtml,
or whatever you want). Go to your HTTP configuration files (C:\Program
Files\Apache Group\Apache\conf or whatever your path is), and open httpd.conf
with a text editor. Search for the word DocumentRoot (which should appear twice)
and change both paths to the directory you want to serve files out of. (The default
is C:\Program Files\Apache Group\Apache\htdocs.). Add at least one PHP extension
directive as shown in the first line of the following code:
LoadModule php5_module modules/php5apache.dll
AddType application/x-httpd-php .php .phtml
You may also need to add the following line:
AddModule mod_php5.c
Stop and restart the WWW service. Go to the Start menu -> Settings -> Control
Panel -> Services. Scroll down the list to IIS Admin Service. Select it and click Stop.
After it stops, select World Wide Web Publishing Service and click Start. Stopping
and restarting the service from within Internet Service Manager will not suffice.
Since this is Windows, you may also wish to reboot.
Open a text editor. Type: <?php phpinfo(); ?>. Save this file in your Web server's
document root as info.php.
Start any Web browser and browse the file.you must always use an HTTP request
(http://www.testdomain.com/info.php or http://localhost/info.php or
http://127.0.0.1/info.php) rather than a filename (/home/httpd/info.php) for the
file to be parsed correctly
You should see a long table of information about your new PHP installation message
Congratulations!
Apache Configuration
If you are using Apache as a Web Server, then this section will guide you to edit Apache
Configuration Files.
PHP.INI File Configuration
The PHP configuration file, php.ini, is the final and most immediate way to affect PHP's
functionality.
Just Check it here: PHP.INI File Configuration
Windows IIS Configuration
To configure IIS on your Windows machine you can refer your IIS Reference Manual
shipped along with IIS.

Apache Configuration for PHP


Apache uses httpd.conf file for global settings, and the .htaccess file for per-directory
access settings. Older versions of Apache split up httpd.conf into three files (access.conf,
httpd.conf, and srm.conf), and some users still prefer this arrangement.
Apache server has a very powerful, but slightly complex, configuration system of its own.
Learn more about it at the Apache Web site: www.apache.org
The following section describes settings in httpd.conf that affect PHP directly and cannot
be set elsewhere. If you have standard installation, then httpd.conf will be found at
/etc/httpd/conf:
Timeout
This value sets the default number of seconds before any HTTP request will time out. If
you set PHP's max_execution_time to longer than this value, PHP will keep grinding away
but the user may see a 404 error. In safe mode, this value will be ignored; you must use
the timeout value in php.ini instead
DocumentRoot
DocumentRoot designates the root directory for all HTTP processes on that server. It looks
something like this on Unix:
DocumentRoot ./usr/local/apache_1.3.6/htdocs.
You can choose any directory as document root.
AddType
The PHP MIME type needs to be set here for PHP files to be parsed. Remember that you
can associate any file extension with PHP like .php3, .php5 or .htm.
AddType application/x-httpd-php .php
AddType application/x-httpd-phps .phps
AddType application/x-httpd-php3 .php3 .phtml
AddType application/x-httpd-php .html
Action
You must uncomment this line for the Windows apxs module version of Apache with shared
object support:
LoadModule php4_module modules/php4apache.dll
or on Unix flavors:
LoadModule php4_module modules/mod_php.so
AddModule
You must uncomment this line for the static module version of Apache.
AddModule mod_php4.c

Benefits of PHP as a server side languages

With the increase in the use of internet for every purpose; right from leisure to business, the
number of websites getting developed is increasing each day. We have moved from static to
dynamic websites and PHP has made it easier for us to develop such dynamic websites. PHP, a
server side scripting language has got a plethora of benefits, which have become the reasons of it
being extensively used across the world for developing high class websites.

There are millions of websites developed and still counting. Why do you think PHP web
development is so popular? If you think just because it is open source, thus free, you are wrong.
Of course, it is one of the reasons, but it is not sufficient to convince people to use it. There are
other benefits of PHP which attracts people towards it. So, let us take a look at some of the most
important reasons to use PHP in web development services.

1. Easy: This server side scripting language is extremely easy to learn, as compared to other
languages. Also, if you are familiar with the syntax of C or Perl, you will learn PHP
easily and quickly; all thanks to easy to understand syntax!
2. Control: While other languages need long scripts, PHP can do the same work in a few
lines of code; having the maximum control over the websites. Also, whenever you want
to make changes, you can edit is easily.
3. Cost efficient: As you know, PHP is open source, it is free of cost. You need not buy
expensive software for it. Your website will be developed in the minimal cost.
4. Efficient: As you know you can enhance the performance of the website built in PHP, as
it is scalable when writing the code as well as reliable too when you need to deal with a
lot of web pages.
5. Access to support: As PHP is being used by a huge number of people, a large
community is formed. So, you need not worry if you get stuck somewhere. You will
easily get the support from them.
6. Platform independent: Whether it is Windows, MacOS, Linux or UNIX; it supports all
the major web browsers.
7. Supports all servers: PHP also supports all the major web servers; be it Apache or
Microsoft IIS. It also supports Netscape and personal web server.
8. Speedy: PHP uses its own memory, so the workload of the server and loading time gets
reduced automatically, which results into the faster processing speed. So, it reduces the
development time when it comes to the web apps like eCommerce or CRM.
9. Secured: It is one of the most secured way of developing websites and web applications;
as it has got a security layer to protect against viruses and threats.
10. Tested, proven and trusted: As it has been used for over 2 decades by millions of
people, its capabilities have been tested and proven and thus trusted by the most
developers.

Why Use A PHP Framework

But first, let’s take a look at the top reasons why many developers like to use PHP frameworks
and how these frameworks can level up your development process. Here’s what PHP
frameworks do:

 Make speed development possible


 Provide well-organized, reusable and maintainable code
 Let you grow over time as web apps running on frameworks are scalable
 Spare you from the worries about low-level security of a site
 Follow the MVC (Model-View-Controller) pattern that ensures the separation of presentation
and logic
 Promote modern web development practices such as object-oriented programming tools

1. Laravel

Although Laravel is a relatively new PHP framework (it was released in 2011), according to
Sitepoint’s recent online survey it is the most popular framework among developers. Laravel has
a huge ecosystem with an instant hosting and deployment platform, and its official website offers
many screencast tutorials called Laracasts.

Laravel has many features that make rapid application development possible. Laravel has its own
light-weight templating engine called “Blade”, elegant syntax that facilitates tasks you
frequently need to do, such as authentication, sessions, queueing, caching and RESTful routing.
Laravel also includes a local development environment called Homestead that is a packaged
Vagrant box.

2. Symfony

The components of the Symfony 2 framework are used by many impressive projects such as the
Drupal content management system, or the phpBB forum software, but Laravel – the framework
listed above – also relies on it. Symfony has a wide developer community and many ardent
fans.

Symfony Components are reusable PHP libraries that you can complete different tasks with,
such as form creation, object configuration, routing, authentication, templating, and many others.
You can install any of the Components with the Composer PHP dependency manager. The
website of Symfony has a cool showcase section where you can take a peek at the projects
developers accomplished with the help of this handy framework.

3. CodeIgniter

CodeIgniter is a lightweight PHP framework that is almost 10 years old (initially released in
2006). CodeIgniter has a very straightforward installation process that requires only a minimal
configuration, so it can save you a lot of hassle. It’s also an ideal choice if you want to avoid
PHP version conflict, as it works nicely on almost all shared and dedicated hosting
platforms (currently requires only PHP 5.2.4).

CodeIgniter is not strictly based on the MVC development pattern. Using Controller classes is a
must, but Models and Views are optional, and you can use your own coding and naming
conventions, evidence that CodeIgniter gives great freedom to developers. If you download it,
you’ll see it’s only about 2MB, so it’s a lean framework, but it allows you to add third-party
plugins if you need more complicated functionalities.

4. Yii 2

If you choose the Yii framework you give a boost to the performance of your site as it’s faster
than other PHP frameworks, because it extensively uses the lazy loading technique. Yii 2 is
purely object-oriented, and it’s based on the DRY (Don’t Repeat Yourself) coding concept, so it
provides you with a pretty clean and logical code base.

Yii 2 is integrated with jQuery, and it comes with a set of AJAX-enabled features, and it
implements an easy-to-use skinning and theming mechanism, so it can be a great choice for
someone who comes from a frontend background. It has also a powerful class code generator
called Gii that facilitates object-oriented programming and rapid prototyping, and provides a
web-based interface that allows you to interactively generate the code you need.
5. Phalcon

The Phalcon framework was released in 2012, and it quickly gained popularity among PHP
developers. Phalcon is said to be fast as a falcon, because it was written in C and C++ to reach
the highest level of performance optimization possible. Good news is that you don’t have to
learn the C language, as the functionality is exposed as PHP classes that are ready to use for
any application.

As Phalcon is delivered as a C-extension, its architecture is optimized at low levels which


significantly reduces the overhead typical of MVC-based apps. Phalcon not only boosts
execution speeds, but also decreases resource usage. Phalcon is also packed with many cool
features such as a universal auto-loader, asset management, security, translation, caching, and
many others. As it’s a well-documented and easy-to-use framework, it’s definitely worth a try.

Basic PHP syntax


Basic PHP Syntax

A PHP script can be placed anywhere in the document.

A PHP script starts with <?php and ends with ?>:

<?php
// PHP code goes here
?>

The default file extension for PHP files is ".php".

A PHP file normally contains HTML tags, and some PHP scripting code.

Below, we have an example of a simple PHP file, with a PHP script that uses a built-in PHP
function "echo" to output the text "Hello World!" on a web page:

Example

<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>


<?php
echo "Hello World!";
?>

</body>
</html>

Note: PHP statements end with a semicolon (;).

Comments in PHP

A comment in PHP code is a line that is not read/executed as part of the program. Its only
purpose is to be read by someone who is looking at the code.

Comments can be used to:

 Let others understand what you are doing


 Remind yourself of what you did - Most programmers have experienced coming back to their
own work a year or two later and having to re-figure out what they did. Comments can remind
you of what you were thinking when you wrote the code

PHP supports several ways of commenting:

Example

<!DOCTYPE html>
<html>
<body>

<?php
// This is a single-line comment

# This is also a single-line comment

/*
This is a multiple-lines comment block
that spans over multiple
lines
*/

// You can also use comments to leave out parts of a code line
$x = 5 /* + 15 */ + 5;
echo $x;
?>

</body>
</html>

PHP Case Sensitivity

In PHP, all keywords (e.g. if, else, while, echo, etc.), classes, functions, and user-defined
functions are NOT case-sensitive.

In the example below, all three echo statements below are legal (and equal):

Example

<!DOCTYPE html>
<html>
<body>

<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>

</body>
</html>

However; all variable names are case-sensitive.

In the example below, only the first statement will display the value of the $color variable (this is
because $color, $COLOR, and $coLOR are treated as three different variables):

Example

<!DOCTYPE html>
<html>
<body>

<?php
$color = "red";
echo "My car is " . $color . "<br>";
echo "My house is " . $COLOR . "<br>";
echo "My boat is " . $coLOR . "<br>";
?>

</body>
</html>

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.

In other languages such as C, C++, and Java, the programmer must declare the name and type of
the variable before using it.

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.

echo and print Statements

In PHP there are two basic ways to get output: echo and print.

In this tutorial we use echo (and print) in almost every example. So, this chapter contains a little
more info about those two output statements.

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;
?>

The PHP print Statement

The print statement can be used with or without parentheses: print or print().

Display Text

The following example shows how to output text with the print command (notice that the text
can contain HTML markup):

Example

<?php
print "<h2>PHP is Fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>

Display Variables

The following example shows how to output text and variables with the print statement:

Example

<?php
$txt1 = "Learn PHP";
$txt2 = "W3Schools.com";
$x = 5;
$y = 4;
print "<h2>" . $txt1 . "</h2>";
print "Study PHP at " . $txt2 . "<br>";
print $x + $y;
?>

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;
?>
You will learn more about objects in a later chapter of this tutorial.

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 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 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

The example below creates a constant with a case-sensitive name:

Example

<?php
define("GREETING", "Welcome to W3Schools.com!");
echo GREETING;
?>

The example below creates a constant with a case-insensitive name:

Example

<?php
define("GREETING", "Welcome to W3Schools.com!", true);
echo greeting;
?>

Constants are Global

Constants are automatically global and can be used across the entire script.
The example below uses a constant inside a function, even if it is defined outside the function:

Example

<?php
define("GREETING", "Welcome to W3Schools.com!");

function myTest() {
echo GREETING;
}

myTest();
?>

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 Show it

+ 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 Show it

The left operand gets set to the value of the expression


x=y x=y
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 Show it

== Equal $x == $y Returns true if $x is equal to $y

$x ===
=== Identical Returns true if $x is equal to $y, and they are of the same type
$y

!= 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

Returns true if $x is not equal to $y, or they are not of the same
!== Not identical $x !== $y
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


>= $x >= $y Returns true if $x is greater than or equal to $y
to

<= 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 Show it

++$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 Show it

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 Show it

Concatenation of $txt1
. Concatenation $txt1 . $txt2
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 Show it

+ Union $x + $y Union of $x and $y

== Equality $x == $y Returns true if $x and $y have the same key/value pairs

$x === Returns true if $x and $y have the same key/value pairs in the same order
=== Identity
$y 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- $x !==
!== Returns true if $x is not identical to $y
identity $y
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!";
}
?>

PHP - The switch Statement

The PHP switch Statement

Use the switch statement to select one of many blocks of code to be executed.

Syntax

switch (n) {
case label1:
code to be executed if n=label1;
break;
case label2:
code to be executed if n=label2;
break;
case label3:
code to be executed if n=label3;
break;
...
default:
code to be executed if n is different from all labels;
}

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

<?php
$favcolor = "red";

switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
}
?>

PHP Loops

Often when you write code, you want the same block of code to run over and over again in a
row. Instead of adding several almost equal code-lines in a script, we can use loops to perform a
task like this.

In PHP, we have the following looping statements:

 while - loops through a block of code as long as the specified condition is true
 do...while - loops through a block of code once, and then repeats the loop as long as the
specified condition is true
 for - loops through a block of code a specified number of times
 foreach - loops through a block of code for each element in an array

The PHP while Loop

The while loop executes a block of code as long as the specified condition is true.

Syntax
while (condition is true) {
code to be executed;
}

The example below first sets a variable $x to 1 ($x = 1). Then, the while loop will continue to
run as long as $x is less than, or equal to 5 ($x <= 5). $x will increase by 1 each time the loop
runs ($x++):

Example

<?php
$x = 1;

while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>

The PHP do...while Loop

The do...while loop will always execute the block of code once, it will then check the condition,
and repeat the loop while the specified condition is true.

Syntax

do {
code to be executed;
} while (condition is true);

The example below first sets a variable $x to 1 ($x = 1). Then, the do while loop will write some
output, and then increment the variable $x with 1. Then the condition is checked (is $x less than,
or equal to 5?), and the loop will continue to run as long as $x is less than, or equal to 5:

Example

<?php
$x = 1;

do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>

Notice that in a do while loop the condition is tested AFTER executing the statements within the
loop. This means that the do while loop would execute its statements at least once, even if the
condition is false the first time.

The example below sets the $x variable to 6, then it runs the loop, and then the condition is
checked:

Example

<?php
$x = 6;

do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);
?>

The PHP for Loop

The for loop is used when you know in advance how many times the script should run.

Syntax

for (init counter; test counter; increment counter) {


code to be executed;
}

Parameters:

 init counter: Initialize the loop counter value


 test counter: Evaluated for each loop iteration. If it evaluates to TRUE, the loop continues. If it
evaluates to FALSE, the loop ends.
 increment counter: Increases the loop counter value

The example below displays the numbers from 0 to 10:

Example
<?php
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x <br>";
}
?>

The PHP foreach Loop

The foreach loop works only on arrays, and is used to loop through each key/value pair in an
array.

Syntax

foreach ($array as $value) {


code to be executed;
}

For every loop iteration, the value of the current array element is assigned to $value and the array
pointer is moved by one, until it reaches the last array element.

The following example demonstrates a loop that will output the values of the given array
($colors):

Example

<?php
$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $value) {


echo "$value <br>";
}
?>

PHP User Defined Functions

Besides the built-in PHP functions, we can create our own functions.

A function is a block of statements that can be used repeatedly in a program.

A function will not execute immediately when a page loads.

A function will be executed by a call to the function.


Create a User Defined Function in PHP

A user defined function declaration starts with the word "function":

Syntax

function functionName() {
code to be executed;
}

Note: A function name can start with a letter or underscore (not a number).

Tip: Give the function a name that reflects what the function does!

Function names are NOT case-sensitive.

In the example below, we create a function named "writeMsg()". The opening curly brace ( { )
indicates the beginning of the function code and the closing curly brace ( } ) indicates the end of
the function. The function outputs "Hello world!". To call the function, just write its name:

Example

<?php
function writeMsg() {
echo "Hello world!";
}

writeMsg(); // call the function


?>

PHP Function Arguments

Information can be passed to functions through arguments. An argument is just like a variable.

Arguments are specified after the function name, inside the parentheses. You can add as many
arguments as you want, just separate them with a comma.

The following example has a function with one argument ($fname). When the familyName()
function is called, we also pass along a name (e.g. Jani), and the name is used inside the function,
which outputs several different first names, but an equal last name:

Example
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}

familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>

The following example has a function with two arguments ($fname and $year):

Example

<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}

familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>

PHP Default Argument Value

The following example shows how to use a default parameter. If we call the function setHeight()
without arguments it takes the default value as argument:

Example

<?php
function setHeight($minheight = 50) {
echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>

PHP Functions - Returning values

To let a function return a value, use the return statement:

Example

<?php
function sum($x, $y) {
$z = $x + $y;
return $z;
}

echo "5 + 10 = " . sum(5, 10) . "<br>";


echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>

What is an Array?

An array is a special variable, which can hold more than one value at a time.

If you have a list of items (a list of car names, for example), storing the cars in single variables
could look like this:

$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";

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 solution is to create an array!

An array can hold many values under a single name, and you can access the values by referring
to an index number.
Create an Array in PHP

In PHP, the array() function is used to create an array:

array();

In PHP, there are three types of arrays:

 Indexed arrays - Arrays with a numeric index


 Associative arrays - Arrays with named keys
 Multidimensional arrays - Arrays containing one or more arrays

PHP Indexed Arrays

There are two ways to create indexed arrays:

The index can be assigned automatically (index always starts at 0), like this:

$cars = array("Volvo", "BMW", "Toyota");

or the index can be assigned manually:

$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";

The following example creates an indexed array named $cars, assigns three elements to it, and
then prints a text containing the array values:

Example

<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

Get The Length of an Array - The count() Function

The count() function is used to return the length (the number of elements) of an array:

Example
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo count($cars);
?>

Loop Through an Indexed Array

To loop through and print all the values of an indexed array, you could use a for loop, like this:

Example

<?php
$cars = array("Volvo", "BMW", "Toyota");
$arrlength = count($cars);

for($x = 0; $x < $arrlength; $x++) {


echo $cars[$x];
echo "<br>";
}
?>

PHP Associative Arrays

Associative arrays are arrays that use named keys that you assign to them.

There are two ways to create an associative array:

$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

or:

$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";

The named keys can then be used in a script:

Example
<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

Loop Through an Associative Array

To loop through and print all the values of an associative array, you could use a foreach loop,
like this:

Example

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

foreach($age as $x => $x_value) {


echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

Multidimensional Arrays

Multidimensional arrays will be explained in the PHP advanced section.

Complete PHP Array Reference

For a complete reference of all array functions, go to our complete PHP Array Reference.

The reference contains a brief description, and examples of use, for each function!

PHP - Sort Functions For Arrays

In this chapter, we will go through the following PHP array sort functions:

 sort() - sort arrays in ascending order


 rsort() - sort arrays in descending order
 asort() - sort associative arrays in ascending order, according to the value
 ksort() - sort associative arrays in ascending order, according to the key
 arsort() - sort associative arrays in descending order, according to the value
 krsort() - sort associative arrays in descending order, according to the key

Sort Array in Ascending Order - sort()

The following example sorts the elements of the $cars array in ascending alphabetical order:

Example

<?php
$cars = array("Volvo", "BMW", "Toyota");
sort($cars);
?>

The following example sorts the elements of the $numbers array in ascending numerical order:

Example

<?php
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);
?>

Sort Array in Descending Order - rsort()

The following example sorts the elements of the $cars array in descending alphabetical order:

Example

<?php
$cars = array("Volvo", "BMW", "Toyota");
rsort($cars);
?>

The following example sorts the elements of the $numbers array in descending numerical order:

Example

<?php
$numbers = array(4, 6, 2, 22, 11);
rsort($numbers);
?>

Sort Array (Ascending Order), According to Value - asort()

The following example sorts an associative array in ascending order, according to the value:

Example

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
asort($age);
?>

Sort Array (Ascending Order), According to Key - ksort()

The following example sorts an associative array in ascending order, according to the key:

Example

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
ksort($age);
?>

Sort Array (Descending Order), According to Value - arsort()

The following example sorts an associative array in descending order, according to the value:

Example

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
arsort($age);
?>
Sort Array (Descending Order), According to Key - krsort()

The following example sorts an associative array in descending order, according to the key:

Example

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
krsort($age);
?>

PHP Global Variables - Superglobals

Several predefined variables in PHP are "superglobals", which means that they are always
accessible, regardless of scope - and you can access them from any function, class or file without
having to do anything special.

The PHP superglobal variables are:

 $GLOBALS
 $_SERVER
 $_REQUEST
 $_POST
 $_GET
 $_FILES
 $_ENV
 $_COOKIE
 $_SESSION

This chapter will explain some of the superglobals, and the rest will be explained in later
chapters.

PHP $GLOBALS

$GLOBALS is a PHP super global variable which is used to access global variables from
anywhere in the PHP script (also from within functions or methods).

PHP stores all global variables in an array called $GLOBALS[index]. The index holds the name
of the variable.

The example below shows how to use the super global variable $GLOBALS:

Example
<?php
$x = 75;
$y = 25;

function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}

addition();
echo $z;
?>

In the example above, since z is a variable present within the $GLOBALS array, it is also accessible from
outside the function!

PHP $_SERVER

$_SERVER is a PHP super global variable which holds information about headers, paths, and
script locations.

The example below shows how to use some of the elements in $_SERVER:

Example

<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

The following table lists the most important elements that can go inside $_SERVER:

Element/Code Description
$_SERVER['PHP_SELF'] Returns the filename of the currently executing script

Returns the version of the Common Gateway Interface (CGI) the


$_SERVER['GATEWAY_INTERFACE']
server is using

$_SERVER['SERVER_ADDR'] Returns the IP address of the host server

Returns the name of the host server (such as


$_SERVER['SERVER_NAME']
www.w3schools.com)

$_SERVER['SERVER_SOFTWARE'] Returns the server identification string (such as Apache/2.2.24)

Returns the name and revision of the information protocol (such


$_SERVER['SERVER_PROTOCOL']
as HTTP/1.1)

Returns the request method used to access the page (such as


$_SERVER['REQUEST_METHOD']
POST)

Returns the timestamp of the start of the request (such as


$_SERVER['REQUEST_TIME']
1377687496)

$_SERVER['QUERY_STRING'] Returns the query string if the page is accessed via a query string

$_SERVER['HTTP_ACCEPT'] Returns the Accept header from the current request

Returns the Accept_Charset header from the current request


$_SERVER['HTTP_ACCEPT_CHARSET']
(such as utf-8,ISO-8859-1)

$_SERVER['HTTP_HOST'] Returns the Host header from the current request

Returns the complete URL of the current page (not reliable


$_SERVER['HTTP_REFERER']
because not all user-agents support it)

$_SERVER['HTTPS'] Is the script queried through a secure HTTP protocol

Returns the IP address from where the user is viewing the current
$_SERVER['REMOTE_ADDR']
page

Returns the Host name from where the user is viewing the current
$_SERVER['REMOTE_HOST']
page

Returns the port being used on the user's machine to


$_SERVER['REMOTE_PORT']
communicate with the web server
$_SERVER['SCRIPT_FILENAME'] Returns the absolute pathname of the currently executing script

Returns the value given to the SERVER_ADMIN directive in the


web server configuration file (if your script runs on a virtual host, it
$_SERVER['SERVER_ADMIN']
will be the value defined for that virtual host) (such as
[email protected])

Returns the port on the server machine being used by the web
$_SERVER['SERVER_PORT']
server for communication (such as 80)

Returns the server version and virtual host name which are added
$_SERVER['SERVER_SIGNATURE']
to server-generated pages

$_SERVER['PATH_TRANSLATED'] Returns the file system based path to the current script

$_SERVER['SCRIPT_NAME'] Returns the path of the current script

$_SERVER['SCRIPT_URI'] Returns the URI of the current page

PHP $_REQUEST

PHP $_REQUEST is used to collect data after submitting an HTML form.

The example below shows a form with an input field and a submit button. When a user submits
the data by clicking on "Submit", the form data is sent to the file specified in the action attribute
of the <form> tag. In this example, we point to this file itself for processing form data. If you
wish to use another PHP file to process form data, replace that with the filename of your choice.
Then, we can use the super global variable $_REQUEST to collect the value of the input field:

Example

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>

PHP $_POST

PHP $_POST is widely used to collect form data after submitting an HTML form with
method="post". $_POST is also widely used to pass variables.

The example below shows a form with an input field and a submit button. When a user submits
the data by clicking on "Submit", the form data is sent to the file specified in the action attribute
of the <form> tag. In this example, we point to the file itself for processing form data. If you
wish to use another PHP file to process form data, replace that with the filename of your choice.
Then, we can use the super global variable $_POST to collect the value of the input field:

Example

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>

PHP $_GET

PHP $_GET can also be used to collect form data after submitting an HTML form with
method="get".

$_GET can also collect data sent in the URL.

Assume we have an HTML page that contains a hyperlink with parameters:

<html>
<body>

<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>

</body>
</html> ..

When a user clicks on the link "Test $GET", the parameters "subject" and "web" are sent to
"test_get.php", and you can then access their values in "test_get.php" with $_GET.

The example below shows the code in "test_get.php":

Example

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>

Tip: You will learn more about $_POST and $_GET in the PHP Forms chapter.

You might also like