PHP 5.4 is Released — What’s New?

Craig Buckler
Craig Buckler
Published in
·Updated:

Share this article

SitePoint Premium
Stay Relevant and Grow Your Career in Tech
  • Premium Results
  • Publish articles on SitePoint
  • Daily curated jobs
  • Learning Paths
  • Discounts to dev tools

7 Day Free Trial. Cancel Anytime.

Key Takeaways

  • PHP 5.4 introduces several new features including short array syntax, Traits, a built-in web server for testing, and new commands.
  • Compatibility issues exist with older PHP code; safe mode, register_globals, and magic quotes have been removed, and several mysqli aliases have been removed.
  • PHP 5.4 is the last version to support Windows XP and Windows 2003.
  • Users report speed increases of up to 25% and a memory reduction of 35% with PHP 5.4.
It’s difficult to believe almost three years have elapsed since PHP 5.3.0. The next version should have been PHP 6.0 but unicode problems have delayed development. This latest version provides many of the features planned for version 6.0. PHP 5.4 is available to download from the php.net website. There’s a PHP 5.3 migration guide if you want to keep your old settings. While it’s stable, you’d be advised to test your sites and applications before installing it on live servers. The PHP team often release a bug-fix version a few weeks after the initial release. So let’s look at the best new features and improvements…

Short Array Syntax

It’s now possible to use finger-saving JavaScript-like square brackets rather than using the old array(…) construct, e.g.

$array1 = [1, 2, 3];

$array2 = [
	"one" => "first",
	"two" => "second",
	"three" => "third"
];

Traits

Traits reduce some limitations of single inheritance. In essence, traits are similar to abstract classes and can contain any number of properties and methods. A class can then use
any number of traits, e.g.

trait Hello
{
    function sayHello() {
        return "Hello";
    }
}
 
trait World
{
    function sayWorld() {
        return "World";
    }
}
	 
class MyWorld
{
    use Hello, World;
}

$world = new MyWorld();
echo $world->sayHello() . ' ' . $world->sayWorld();
For more information, refer to Using Traits in PHP 5.4 on PHPmaster.com.

Built-in Web Server

PHP 5.4 offers a built-in web server which runs from the Windows, Mac or Linux command line. While it’s not Apache or IIS, it’s fine for simple testing. I suspect many of the better PHP IDEs will implement support shortly. For more information, refer to PHP 5.4’s New Built-in Web Server.

New Commands

A number of useful commands have been implemented:
  1. hextobin(string $hex): coverts a hex representation of data to binary.
  2. http_response_code(int $code): allows you to set or get the HTTP response code, e.g. http_response_code(404);
  3. header_register_callback(string $function): allows you to register a function which is called when PHP starts sending output.
  4. trait_exists(string $name [,bool $autoload]): determines whether a trait exists and, optionally, whether it should be autoloaded.

Miscellaneous Updates

If that’s not enough…
  • Class members can be accessed on instantiation, e.g. (new MyClass)->MyMethod()
  • <?=$variable?> is always available regardless of how your short_open_tag ini option is set.
  • Binary numbers can be declared, e.g. 0b11110000
  • Session upload progress has been implemented so PHP can track the state of file uploads.
  • Some users are reporting speed increases of up to 25% with a memory reduction of 35%.

Compatibility Issues

Most older PHP code should run without modification but there are a few gotchas to look out for: You should also note that PHP 5.4.x will be the last edition to support Windows XP and Windows 2003. PHP 5.4 isn’t quite as radical has 5.3, but there are enough new features to keep developers happy for a while. Let us know if you have any positive or negative experiences with the latest version.

Frequently Asked Questions about PHP 5.4

What are the new features introduced in PHP 5.4?

PHP 5.4 introduced several new features to enhance the performance and functionality of the language. These include traits, a short array syntax, a built-in web server for testing purposes, and enhancements to existing features like closures. Traits allow for horizontal code reuse, helping to solve the single inheritance problem in PHP. The short array syntax simplifies array declaration, making the code cleaner and easier to read. The built-in web server is not intended for production use, but it’s a handy tool for development and testing.

What is the significance of traits in PHP 5.4?

Traits are a mechanism for code reuse in single inheritance languages such as PHP. They allow you to create methods that can be used in multiple classes without the need for multiple inheritance. Traits reduce complexity and can help to avoid problems associated with multiple inheritance or mixin classes.

How does the built-in web server in PHP 5.4 work?

The built-in web server in PHP 5.4 is a command-line interface (CLI) server that is designed for testing and debugging purposes. It’s not intended for production use, but it’s a useful tool for developers. To start the server, you simply use the command ‘php -S localhost:8000’ in your terminal.

What are the improvements to closures in PHP 5.4?

In PHP 5.4, closures have been improved with the addition of support for $this. This means that closures declared in the context of a class have access to the class’s instance. This makes it easier to write more concise and readable code.

What is the short array syntax in PHP 5.4?

The short array syntax is a new way to define arrays in PHP 5.4. Instead of using the traditional array() function, you can now use square brackets []. This makes the code cleaner and easier to read.

What is the performance of PHP 5.4 compared to previous versions?

PHP 5.4 offers significant performance improvements over previous versions. It uses less memory and executes tasks faster. This is due to several enhancements, including improvements in memory management and the addition of new features like traits.

What is the end of life for PHP 5.4?

The end of life for PHP 5.4 was on September 3, 2015. This means that it no longer receives official support, including security updates. It’s recommended to upgrade to a more recent version of PHP to ensure your applications remain secure and performant.

What are the security implications of using PHP 5.4?

Since PHP 5.4 has reached its end of life, it no longer receives security updates. This means that any vulnerabilities discovered in this version will not be patched, potentially leaving your applications at risk. It’s recommended to upgrade to a more recent version of PHP to ensure your applications remain secure.

How can I upgrade from PHP 5.4 to a newer version?

Upgrading from PHP 5.4 to a newer version involves several steps, including backing up your current setup, updating your server’s PHP packages, and testing your applications to ensure they work correctly with the new version. It’s recommended to consult with a professional or follow a detailed guide to ensure the upgrade process goes smoothly.

What are the alternatives to PHP 5.4?

If you’re looking to upgrade from PHP 5.4, there are several newer versions of PHP available, each with their own set of features and improvements. These include PHP 5.6, PHP 7.x, and the latest PHP 8.x. Each version offers improvements in performance, security, and functionality.

Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.

PHPphp 5.4

Share this article

Subscribe to our newsletter

Get the freshest news and resources for developers, designers and digital creators in your inbox each week

© 2000 – 2025 SitePoint Pty. Ltd.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.