LearnContact
Lesson 218 min read

History of PHP

Trace PHP's journey from a simple set of personal home page tools to the modern, high-performance language that still powers a huge share of the web.

Introduction

PHP has been part of the web for over three decades, which makes it one of the oldest server-side languages still in everyday use. Understanding where it came from helps explain why it looks the way it does today, and why certain features exist alongside much newer additions like union types and JIT compilation.

This lesson walks through PHP's history: its accidental origin as a personal scripting tool, the major version releases that reshaped it, how decisions about the language get made today, and where PHP stands in the current web development landscape.

What You Will Learn
  • Who created PHP, and why it exists.
  • How PHP grew from a personal toolkit into a full language.
  • The major milestones across PHP 3, 5, 7, and 8.
  • How the PHP language itself is developed and governed today.
  • Where PHP fits in the web development world right now.

The Birth of PHP

PHP was created in 1994 by a Danish-Canadian programmer named Rasmus Lerdorf. He was not trying to build a programming language — he was trying to track visits to his own online resume. To do that, he wrote a small set of Common Gateway Interface (CGI) programs in C, which he called "Personal Home Page Tools," or PHP Tools for short.

Other developers quickly noticed how useful these tools were for building simple dynamic pages, and Rasmus kept extending them. By 1995 he released "Personal Home Page Tools (PHP Tools) version 1.0" publicly, and the community around it began to grow far beyond his original resume-tracking use case.

Rasmus Lerdorf

Created PHP in 1994 to solve a personal problem: tracking visitors to his online resume.

PHP Tools

The original name stood for "Personal Home Page Tools," a small set of CGI scripts written in C.

1995 Release

The tools were released publicly, and other developers began adopting and extending them.

Recursive Rename

PHP later became a recursive acronym: "PHP: Hypertext Preprocessor."

From Tools to a Language

PHP did not start out as a proper programming language — it was a utility. As demand grew, it needed real language features: variables, loops, and a proper parser. In 1997, developers Andi Gutmans and Zeev Suraski rewrote the parsing engine from scratch, and this rewrite became the foundation of PHP 3, released in 1998.

This is also roughly when the name changed from "Personal Home Page Tools" to the recursive backronym "PHP: Hypertext Preprocessor" — a nod to the fact that it had grown into a genuine scripting language, not just a personal utility.

Why the Rewrite Mattered

Gutmans and Suraski's rewrite gave PHP an extensible engine that other developers could build modules on top of. That extensibility is a big part of why PHP was able to grow so quickly through the late 1990s and 2000s.

Major Version Milestones

PHP's history is easiest to follow through its major releases. Each one solved real problems developers were running into at the time.

PHP 3 (1998)

The first version widely adopted across the web. It introduced support for multiple databases and platforms, and is generally considered the first "real" PHP release.

PHP 5 (2004)

Brought a proper object-oriented programming model — classes, interfaces, and visibility modifiers — turning PHP into a language capable of powering large applications.

PHP 7 (2015)

A massive performance overhaul (built on the "PHPNG" engine) that roughly doubled speed and cut memory usage compared to PHP 5, while adding scalar type declarations.

PHP 8 (2020)

Introduced the JIT (Just-In-Time) compiler, union types, named arguments, and match expressions — modernizing the language significantly.

PHP 8.1+ (2021 onward)

Added enums and readonly properties, along with fibers and further performance and typing refinements in each yearly release.

Notice the gap between PHP 5 (2004) and PHP 7 (2015) — PHP 6 was attempted but never released as a stable version, so the community skipped straight to PHP 7 to avoid confusion with the abandoned project.

How PHP Is Governed

PHP is not controlled by a single company. It is developed by a core team of contributors and maintainers who collaborate openly, largely coordinated through the php.net website and its mailing lists.

New language features go through a formal RFC (Request for Comments) process: anyone can propose a change, the proposal is discussed publicly, and then core developers vote on whether to accept it. This is how features like union types, enums, and readonly properties were formally added to the language.

The RFC Process in Short
  • A contributor writes an RFC describing a proposed change.
  • The proposal is discussed on the official PHP mailing list.
  • Core developers vote, typically requiring a two-thirds majority for language changes.
  • Accepted RFCs are implemented and scheduled into an upcoming PHP release.

Where PHP Stands Today

Despite being over 30 years old, PHP still runs a remarkable share of the web. A large part of that is due to WordPress, which alone powers a huge percentage of all websites and is built entirely in PHP.

Beyond WordPress, modern frameworks like Laravel and Symfony have given PHP a contemporary developer experience — routing, dependency injection, ORM tools, and testing support — comparable to frameworks in other languages. Combined with the performance gains from PHP 7 and 8, PHP remains a practical, actively maintained choice for new projects, not just a legacy one.

WordPress

Still the most widely used content management system on the internet, built entirely in PHP.

Laravel

A modern, full-featured framework that has become the de facto standard for new PHP applications.

Enterprise Use

Companies like Slack (early infrastructure) and Etsy have relied on PHP at scale for years.

Active Development

PHP receives a new major or minor release roughly every year, with continued performance and typing improvements.

Example: Modern PHP in Action

To see how far PHP has come, here is a small snippet using an enum and a readonly property — both features that did not exist before PHP 8.1.

modern.php
<?php
enum Status
{
    case Draft;
    case Published;
}

class Article
{
    public function __construct(
        public readonly string $title,
        public readonly Status $status = Status::Draft
    ) {}
}

$post = new Article("PHP Through the Years", Status::Published);
echo "{$post->title} is currently {$post->status->name}.";
Console Output
PHP Through the Years is currently Published.

Common Mistakes

Avoid These Mistakes
  • Assuming PHP is a single company's product — it is community-developed through an open RFC process.
  • Confusing PHP 6 with a real release — it was never shipped as a stable version.
  • Judging PHP by outdated PHP 4/5 code style instead of looking at how PHP 8.x code actually looks.
  • Thinking version numbers alone tell the whole story — PHP 7 and 8 changed performance and features dramatically, not just the number.

Best Practices

  • Always develop against a currently supported PHP version (check php.net for the active support timeline).
  • Read release notes for major versions before upgrading a real project.
  • Follow PHP RFCs if you want to understand why a language feature works the way it does.
  • When learning from tutorials or old books, check which PHP version the material targets.

Frequently Asked Questions

Who actually invented PHP?

Rasmus Lerdorf created the original "Personal Home Page Tools" in 1994. Andi Gutmans and Zeev Suraski later rewrote the parsing engine in 1997, which became the basis for PHP 3.

What happened to PHP 6?

PHP 6 was an attempted version focused on Unicode support, but it was never released as a stable version. The project was abandoned, and development moved straight to PHP 7 to avoid confusion.

What made PHP 7 such a big deal?

PHP 7 was built on a new engine (nicknamed PHPNG) that roughly doubled performance and significantly reduced memory usage compared to PHP 5, while keeping the language mostly backward compatible.

What is the JIT compiler added in PHP 8?

JIT (Just-In-Time) compilation translates parts of PHP code into machine code at runtime, which can speed up certain CPU-intensive workloads, though most typical web request performance gains come from PHP 7's earlier engine rewrite.

Is PHP still being actively developed?

Yes. PHP receives regular releases (roughly yearly for minor versions) with new features, performance work, and security fixes, all coordinated through the open RFC process.

Key Takeaways

  • PHP began in 1994 as Rasmus Lerdorf's "Personal Home Page Tools," used to track resume visits.
  • A 1997 engine rewrite by Andi Gutmans and Zeev Suraski became the foundation for PHP 3 (1998), the first widely adopted version.
  • PHP 5 (2004) added proper object-oriented programming; PHP 7 (2015) delivered major performance gains; PHP 8 (2020) brought JIT compilation, union types, and named arguments.
  • PHP 8.1 and later added enums and readonly properties, among other refinements.
  • PHP is governed openly through a core team and a formal RFC process, and still powers a huge share of the web via WordPress and frameworks like Laravel.

Summary

What started as a small personal utility in 1994 grew, through several major rewrites and releases, into one of the most widely deployed programming languages on the web. Each major version — 3, 5, 7, and 8 — solved a real problem of its era, from database support to object orientation to raw performance.

In this lesson, you traced PHP's history from Rasmus Lerdorf's original tools through the modern PHP 8.x era, and saw how the language is governed today. Next, you will look at why PHP remains a smart choice for developers in the present day.

Lesson 2 Completed
  • You know who created PHP and why.
  • You can name the major version milestones and what each one introduced.
  • You understand how PHP features are proposed and approved through the RFC process.
  • You are ready to explore why PHP is still a strong choice today.
Next Lesson →

Why PHP?