Nouvelles fonctionnalités

PHP 5.3.0 contient un large éventail de nouvelles fonctionnalités.

  • Le support des espaces de noms (en anglais, namespaces) a été ajouté.
  • Le support de Late Static Bindings a été ajouté.
  • Le support des goto et étiquettes de saut (limited goto) a été ajouté.
  • Le support natif des fermetures (en anglais, Closures) fonctions anonymes et fonctions lambda, a été ajouté.
  • Il y a deux nouvelles méthodes magiques : __callStatic et __invoke ont été ajoutées.
  • La syntaxe Nowdoc a été ajoutée, et fonctionne comme la syntaxe Heredoc mais avec des guillemets simples.
  • Il est maintenant possible d'utiliser Heredoc pour initialiser des variables statiques ou des propriétés/constantes de classes.
  • La syntaxe Heredoc peut maintenant être déclarée en utilisant des guillemets doubles, complétant ainsi la syntaxe Nowdoc.
  • Les constantes peuvent être déclarées hors d'une classe à l'aide du mot-clé const.
  • L'opérateur ternaire dispose maintenant d'un raccourci sous la forme de ?:.
  • Le gestionnaire de flux HTTP considère maintenant tous les codes de 200 à 399 comme réussis.
  • L'accès dynamique aux méthodes statiques est maintenant possible :
    <?php
    class {
       public static 
    $foo 123;
    }

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

    L'exemple ci-dessus va afficher :

    123
    
  • Les exceptions peuvent être imbriquées :
    <?php
    class MyCustomException extends Exception {}

    try {
        throw new 
    MyCustomException("Exceptional"112);
    } catch (
    Exception $e) {
        
    /* Notez l'utilisation du troisième paramètre pour passer la variable $e
         * dans RuntimeException. */
        
    throw new RuntimeException("Rethrowing"911$e);
    }
    ?>
  • Un collecteur de mémoire concernant les références circulaires a été ajouté et est activé par défaut.
  • La fonction mail() supporte maintenant l'historisation des emails envoyés via la directive de configuration mail.log. (Notes : ceci n'est valide que pour les emails émis avec cette fonction)
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top