Saturday, March 20, 2010

Whats New in PHP 6

 PHP 6.0 looks to be an exciting release. Nothing is
absolutely fixed yet, but it looks like it will see the demise of three
of my pet peeves: register_globals, magic_quotes_gpc and safe_mode. The
first was just a big security hole, the second messed with the data and
made changing environments potentially nightmarish, while the third was
a misnomer that nobody really understood, and provided a false sense of
security. There's also quite a lot of work scheduled to do with
Unicode. Here are some of the changes:
  • The register_globals, safe_mode and the various magic quotes options
    will be removed.

  • The ereg extension is removed, while the XMLReader, XMLWriter
    and Fileinfo extensions are added to the core, and by default are on.

  • Another addition I find particularly exciting is that APC (Alternative PHP Cache)
    will be
    added to the core, though will be off by default. APC can provide
    serious performance benefits.

  • All E_STRICT messages will be merged into E_ALL, another
    positive change that will encourage good programming practice.

  • ASP style <% tags will no longer be supported.

  • Addition of a new 64-bit integers. The current integer type
    remains as is, 32 or 64-bit dependent on the platform.

  • Use of foreach with multi-dimensional arrays, for
    example foreach($array as $k => list($a, $b)).

  • A new switch in php.ini will allow you to disable Unicode
    semantics (by default they will be on).

  • There will also be various string improvements related to
    Unicode.

  • The microtime() function will return the full floating point
    number, rather than microseconds unix_timestamp, as at present,
    probably making the function more readily useful for most people.

  • The {} notation for string indexes will no longer be supported,
    while the [] version will get added substr() and array_slice()
    functionality. Previously [] was deprecated, but most developers,
    including myself, seem to use [].

  • FastCGI will always be enabled for the CGI SAPI, and will not
    be able to be disabled.

  • The ancient HTTP_*_VARS globals will no longer be supported.
    Everyone should have had more than enough time to remove any traces of
    these.

  • var will alias public. var was
    permitted with PHP4 classes, but in PHP 5 this raised a warning. In PHP 6
    var will simply be an alias for public, so no warning
    is necessary.

  • The ze1 compatibility mode, which tried to retain PHP 4
    behaviour but had some bugs, will be removed.

  • Dynamic functions will no longer be permitted to be called with
    static syntax.

No comments:

Post a Comment