Maison > développement back-end > PHP7 > Présentation des nouvelles fonctionnalités et de l'optimisation des performances de la comparaison php7 et PHP5

Présentation des nouvelles fonctionnalités et de l'optimisation des performances de la comparaison php7 et PHP5

coldplay.xixi
Libérer: 2023-02-17 21:08:02
avant
2042 Les gens l'ont consulté

Présentation des nouvelles fonctionnalités et de l'optimisation des performances de la comparaison php7 et PHP5

Nouvelles fonctionnalités et optimisations de performances comparant php7 et PHP5

1. )

AST joue le rôle d'un middleware dans le processus de compilation PHP, remplaçant la manière originale de cracher l'opcode directement depuis l'interpréteur, dissociant l'interpréteur (analyseur) et le compilateur (compilateur), ce qui peut réduire certains codes de piratage, en même temps, rend la mise en œuvre plus facile à comprendre et à maintenir

Recommandé (gratuit) : PHP7

2. Natice TLS :

Le partage de données de thread est sécurisé, ouvrez un thread global à utiliser comme espace mémoire partagé de données

3. Spécifiez le type de valeur de retour du paramètre

. 🎜>

4. Modifications de la structure zval

5. Gestion des exceptions

Try...catch de PHP 5. ..finalement ne peut pas gérer les erreurs traditionnelles, vous envisageriez généralement de les pirater avec set_error_handler() si nécessaire. Cependant, il existe encore de nombreux types d'erreurs qui ne peuvent pas être détectés par set_error_handler()

PHP 7 a introduit l'interface Throwable. Les erreurs et les exceptions implémentent Throwable ne peuvent pas être implémentées directement, mais les classes Exception et Error peuvent l'être. étendu. Vous pouvez utiliser Throwable pour détecter les exceptions et les erreurs. Exception est la classe de base pour toutes les exceptions PHP et utilisateur ; Error est la classe de base pour toutes les erreurs PHP internes.

6. Nouvelle méthode d'analyse des paramètres

7. Modifications de la table de hachage

les buckets et les Zvals n'attribuent plus de mémoire séparément. beaucoup de redondance inutile.

8. Opérateur de fusion nulle

Exemple direct :

$name = $name ?? "NoName";  // 如果$name有值就取其值,否则设$name成"NoName"
Copier après la connexion

9.

Forme : (expr) <=> (expr)

Si l'opérande gauche est petit, alors - 1 si les opérandes gauche et droit sont égaux ; , 0 est renvoyé ; si l'opérande de gauche est plus grand, 1 est renvoyé ;

$name = ["Simen", "Suzy", "Cook", "Stella"];
usort($name, function ($left, $right) {
    return $left <=> $right;
});
print_r($name);
Copier après la connexion
10. Constant Array

PHP 7 autorisait auparavant uniquement l'utilisation de tableaux constants dans les classes/interfaces, mais désormais PHP 7 prend également en charge les non-classes/interfaces. tableau de constantes ordinaires.

define("USER", [
  "name"  => "Simen",
  "sex"   => "Male",
  "age"   => "38",
  "skill" => ["PHP", "MySQL", "C"]
]);
// USER["skill"][2] = "C/C++";  // PHP Fatal error:  Cannot use temporary expression in write context in...
Copier après la connexion
11. Syntaxe des variables unifiées

$goo = [
    "bar" => [
        "baz" => 100,
        "cug" => 900
    ]
];

$foo = "goo";

$$foo["bar"]["baz"];  // 实际为:($$foo)[&#39;bar&#39;][&#39;baz&#39;]; PHP 5 中为:${$foo[&#39;bar&#39;][&#39;baz&#39;]};
                      // PHP 7 中一个笼统的判定规则是,由左向右结合。
Copier après la connexion
12. Interface jetable

C'est une introduction intéressante à PHP 7. les nouvelles fonctionnalités attendues amélioreront considérablement les capacités de gestion des erreurs de PHP. PHP 5 try ... catch ... ne peut finalement pas gérer les erreurs traditionnelles, vous envisagerez donc généralement de le pirater avec set_error_handler() si nécessaire. Mais il existe encore de nombreux types d’erreurs que set_error_handler() ne peut pas détecter. PHP 7 introduit l'interface Throwable. Les erreurs et exceptions implémentent Throwable. Throwable ne peut pas être implémenté directement, mais les classes Exception et Error peuvent être étendues. Vous pouvez utiliser Throwable pour détecter les exceptions et les erreurs. Exception est la classe de base pour toutes les exceptions PHP et utilisateur ; Error est la classe de base pour toutes les erreurs PHP internes.

$name = "Tony";
try {
    $name = $name->method();
} catch (\Error $e) {
    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;
}

try {
    $name = $name->method();
} catch (\Throwable $e) {
    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;
}

try {
    intp(5, 0);
} catch (\pisionByZeroError $e) {
    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;
}
Copier après la connexion
13. Utiliser l'instruction combinée

Utiliser l'instruction combinée peut réduire la redondance d'utilisation des entrées. " |" à réaliser.

use PHPGoodTaste\Utils\{
    Util,
    Form,
    Form\Validation,
    Form\Binding
};
Copier après la connexion
15. Modifications des modificateurs de visibilité

Les constantes de classe avant PHP 7.1 ne sont pas autorisées à ajouter des modificateurs de visibilité. À l'heure actuelle, la visibilité des constantes de classe est équivalente à. le public. PHP 7.1 ajoute la prise en charge des modificateurs de visibilité pour les constantes de classe. En général, la plage d'utilisation des modificateurs de visibilité est la suivante :

Fonction/méthode : publique, privée, protégée, abstraite, finale

Classe : abstraite, finale

    Propriétés/variables : publique, privée, protégée
  • Constantes de classe : publique, privée, protégée
  • try {
          throw new LengthException("LengthException");
        //   throw new pisionByZeroError("pisionByZeroError");
        //   throw new Exception("Exception");
    } catch (\pisionByZeroError | \LengthException $e) {
        echo "出错消息 --- ", $e->getMessage(), PHP_EOL;
    } catch (\Exception $e) {
        echo "出错消息 --- ", $e->getMessage(), PHP_EOL;
    } finally {
        // ...
    }
    Copier après la connexion
  • pseudo-type itérable
PHP 7.1 a introduit le pseudo-type itérable. Le type itérable s'applique aux tableaux, générateurs et objets qui implémentent Traversable, qui est un nom de classe réservé en PHP.

class YourClass 
{
    const THE_OLD_STYLE_CONST = "One";

    public const THE_PUBLIC_CONST = "Two";
    private const THE_PRIVATE_CONST = "Three";
    protected const THE_PROTECTED_CONST = "Four";
}
Copier après la connexion
Type nullable

PHP 7.1 a introduit les types nullables. Regardez l'une des fonctionnalités gadgets du nouveau langage de programmation Kotlin: les types nullables. PHP s'apparente de plus en plus à un "langage fortement typé". Pour les exigences obligatoires du même type, vous pouvez définir si elles sont nullables.

$fn = function (iterable $it) : iterable {
    $result = [];
    foreach ($it as $value) {
        $result[] = $value + 1000;
    }
    return $result;
};

$fn([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
Copier après la connexion
Type de retour Void

PHP 7.1 a introduit le type de retour Void.

$fn = function (?int $in) {
    return $in ?? "NULL";
};

$fn(null);
$fn(5);
$fn();  // TypeError: Too few arguments to function {closure}(), 0 passed in ...
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal