Peu de temps après PHP 5.3 est sorti, PHP 6 était à ses balbutiements, et PHP 5.4 a publié la première version alpha.5.4, qui comprend principalement les caractéristiques suivantes: Ajouté: Traitslanguage Addconstructed: Support de référencement d'éventail Ajouté: DTracesupport Amélioré: Imp
Peu de temps après PHP 5.3 est sorti, PHP 6 était à ses balbutiements, et PHP 5.4 a publié la première version alpha.
5.4 comprend principalement les caractéristiques suivantes :
Ajouté : Construction de langage de traitsAjouté : Support de référencement d'arrayAdded : Support DTraceAmélioré : Amélioration du mem zend Engine Utilisation de l'ory et performanceMoved: ext/sqlite moved to pecl (sqlite3 support is still built-in) Removed: break/re $va r syntaxremoved: register-globals, let-call-time-pass-reference, and register-long-arrays ini optionsRemoved: session?is-regisitered(), session-enregistré(), et session-unregister()
Nous nous concentrons sur les trois nouveaux points suivants :
Construction de langage de traits
Traits n'est pas un nouveau concept plus, c , java ont des choses similaires, mais cette fois PHP a également introduit.
Traits est une méthode légère de réutilisation (par rapport à l'héritage). Pourquoi le dites-vous? C'est comme, si vous fournissez une classe de base pour les utilisateurs d'hériter et d'utiliser, alors inévitablement vous devez considérer comment rendre les utilisateurs hérités après avoir été disponible, comment éviter les utilisateurs de dépasser certains attributs clés, la suppression de certaines méthodes clés et causer des erreurs. À ce moment, vous devez envisager de passer à public ou privé, ou protégé, vous devez également considérer, cette méthode doit être déclarée FINAL:
Et si vous utilisez Traits, alors vous n'avez pas besoin de vous soucier de ces questions, c'est une combinaison du matériel que vous fournissez, où qu'il soit auto-intégral.
SayHello(//Bonjour Monde)
Le conflit entre Le Trait et l'héritage et la fonction du même nom de la classe actuelle, il ya un ensemble fixe de solutions, c'est-à-dire, la méthode de la classe actuelle remplace la méthode du même nom de Trait, tandis que la méthode dans Trait, la méthode qui remplace la méthode du même nom de la classe de base. Comme quoi:
sayHello(///echos Hello World)