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 C {
       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)
LoadingChargement en cours