migration53-php-new-features-5

  • Migrating from PHP 5.2.x to PHP
    5.3.x
  • New features

  • New features
  • New features

    New features

    PHP 5.3.0 offers a wide range of new
    features:

    • Support for namespaces has been
      added.
    • Support for Late Static
      Bindings
      has been added.
    • Support for jump labels
      (limited goto) has been added.
    • Support for native
      Closures
      (Lambda/Anonymous functions) has been added.
    • There are two new magic
      methods, __callStatic() and __invoke().
    • Nowdoc syntax is now supported, similar to
      Heredoc syntax, but with single
      quotes.
    • It is now possible to
      use Heredocs to initialize static variables and class
      properties/constants.
    • Heredocs may now be declared using double quotes,
      complementing the Nowdoc syntax.
    • Constants can now
      be declared outside a class using the const
      keyword.
    • The ternary operator now has a shorthand form:
      ?:.
    • The HTTP stream wrapper
      now considers all status codes from 200 to 399 to be
      successful.
    • Dynamic access to static
      methods is now possible:

      <?php
      class {
         public static 
      $foo 123;
      }

      $a "C";
      echo 
      $a::$foo;
      ?>

      The above example will output:

      123
      
    • Exceptions can now be
      nested:

      <?php
      class MyCustomException extends Exception {}

      try {
          throw new MyCustomException("Exceptional"112);
      } catch (
      Exception $e) {
          
      /* Note the use of the third parameter to pass $e
           * into the RuntimeException. */
          
      throw new RuntimeException("Rethrowing"911$e);
      }
      ?>

    • A garbage collector for circular
      references has been added, and is enabled by default.
    • The mail() function now supports logging of sent
      email via the mail.log configuration directive. (Note: This only
      applies to email sent through this function.)