---
title: "PHP 5.4 stuff I'm jazzed about..."
date: 2012-01-28
canonical: https://michaelshadle.com/2012/01/28/php54-stuff-im-jazzed-about
---

# PHP 5.4 stuff I'm jazzed about...

I'm always excited to read updates to the NEWS file for each PHP version (yes, I am that big of a PHP fan boy) - and PHP 5.4 has quite a handful of noteworthy changes. I started cutting them out and decided to publish my "this is interesting" or "this is awesome" list...

This is as of PHP 5.4.0 RC6. Note that I didn't put in anything related to OO, as I despise the obsession with OO now in PHP and do my best to live without it.

Misc. notable changes:

-   Added built-in web server that is intended for testing purpose. (Moriyoshi)
-   Changed default value of "default_charset" php.ini option from ISO-8859-1 to UTF-8. (Rasmus)
-   Added array dereferencing support. (Felipe)
-   Added header_register_callback() which is invoked immediately prior to the sending of headers and after default headers have been added. (Scott)
-   Changed http_response_code() to be able to set a response code. (Kalle)
-   Added new json_encode() option JSON_PRETTY_PRINT. FR #44331. (Adam)
-   Changed silent conversion of array to string to produce a notice. (Patrick)
-   Removed support for putenv("TZ=..") for setting the timezone. (Derick)
-   Removed the timezone guessing algorithm in case the timezone isn't set with date.timezone or date_default_timezone_set(). Instead of a guessed timezone, "UTC" is now used instead. (Derick)
-   ext/mysql, mysqli and pdo_mysql now use mysqlnd by default. (Johannes) )I think this is in 5.3 though too?)
-   Expose session status via new function, session_status (FR #52982) (Arpad)
-   Added support for storing upload progress feedback in session data. (Arnaud)

PHP-FPM related:

-   Remove EXPERIMENTAL flag. (fat)
-   Added partial syslog support (on error_log only). FR #52052. (fat)
-   Lowered default value for Process Manager. FR #54098. (fat)
-   Enhance security by limiting access to user defined extensions. FR #55181. (fat)
-   Added process.max to control the number of process FPM can fork. FR #55166. (fat)
-   Dropped restriction of not setting the same value multiple times, the last one holds. (giovanni at giacobbi dot net, fat)

Removed legacy features:

-   Safe mode and all related ini options. (Kalle)
-   register_globals and register_long_arrays ini options. (Kalle)
-   import_request_variables(). (Kalle)
-   allow_call_time_pass_reference. (Pierrick)
-   Session bug compatibility mode (session.bug_compat_42 and session.bug_compat_warn ini options). (Kalle)
-   session_is_registered(), session_register() and session_unregister() functions. (Kalle)
-   y2k_compliance ini option. (Kalle)
-   Removed magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR. (Pierrick, Pierre)
