" et "??"-PHP7-php.cn">

Maison  >  Article  >  développement back-end  >  Deux nouveaux opérateurs ajoutés à php7 : "?->" et "??"

Deux nouveaux opérateurs ajoutés à php7 : "?->" et "??"

PHPz
PHPzoriginal
2023-03-21 15:49:521665parcourir

Après la sortie de PHP7, tout le monde a découvert qu'un changement important était l'amélioration de la vérification de type renforcée. Ce changement est très bénéfique car il nous permet d'éviter de nombreuses erreurs comme référencer une variable avant qu'elle n'ait été définie.

Dans les versions précédentes de PHP, si nous ne définissions pas de variable, son utilisation directe entraînerait une erreur Variable non définie. Cependant, en PHP7, nous pouvons utiliser quelques nouvelles fonctionnalités pour éviter ce problème. Undefined variable的错误。但是,在PHP7中,我们可以使用一些新功能来避免这个问题的发生。

这些新功能包括两个新的操作符,即:?->??。它们可以分别解决两种不同类型的问题。

?->操作符

在之前的PHP版本中,我们可以通过使用isset函数来判断一个变量是否已定义。但是,这只适用于单个变量的情况。如果我们需要检查一个对象的属性是否已定义,那么就需要使用一些复杂的代码来完成这个任务。

在PHP7中,我们可以使用?->操作符来检查一个对象的属性是否已定义。这个操作符只在属性的接收者是null、false或未定义的变量时返回null,否则返回属性的值。通过这种方法,我们可以避免在属性没有被定义之前使用它,从而避免Undefined variable的错误。

<?php
$obj = null;
$value = $obj?->property;
?>

在上面的代码中,如果$obj是null,那么$value将被设置为null,否则$value将被设置为$obj的property属性的值。

??操作符

另外一个非常有用的新功能是??操作符。这个操作符可以用来检查一个变量是否已定义,并且如果没有定义就设置一个默认值。

在之前的PHP版本中,我们通常会使用三元操作符来完成这个任务:

<?php
$variable = isset($variable) ? $variable : &#39;default value&#39;;
?>

在PHP7中,我们可以使用??操作符来代替上面的代码。如果$variable已经定义,那么$variable将被赋值给$result,否则$result将被赋值为默认值。

<?php
$variable = null;
$result = $variable ?? "default value";
?>

在上面的代码中,$result将被设置为"default value",因为$variable是null。

总结

这两个新操作符可以非常有效地避免Undefined variable

Ces nouvelles fonctionnalités incluent deux nouveaux opérateurs, à savoir : ?-> et ??. Ils peuvent résoudre respectivement deux types de problèmes différents. 🎜🎜?->Opérateur🎜🎜Dans les versions précédentes de PHP, nous pouvions déterminer si une variable a été définie en utilisant la fonction isset. Cependant, cela ne fonctionne que pour une seule variable. Si nous devons vérifier si les propriétés d'un objet sont définies, nous devons utiliser un code complexe pour accomplir cette tâche. 🎜🎜En PHP7, on peut utiliser l'opérateur ?-> pour vérifier si les propriétés d'un objet ont été définies. Cet opérateur ne renvoie null que si le récepteur de la propriété est null, false ou une variable non définie, sinon il renvoie la valeur de la propriété. De cette façon, nous pouvons éviter d'utiliser la propriété avant qu'elle ne soit définie, évitant ainsi les erreurs de variable non définie. 🎜rrreee🎜Dans le code ci-dessus, si $obj est nul, alors $value sera défini sur null, sinon $value sera défini sur la valeur de l'attribut de propriété de $obj. 🎜🎜?? Opérateur🎜🎜Une autre nouvelle fonctionnalité très utile est l'opérateur ?? Cet opérateur peut être utilisé pour vérifier si une variable est définie et définir une valeur par défaut sinon. 🎜🎜Dans les versions précédentes de PHP, nous utilisions généralement l'opérateur ternaire pour accomplir cette tâche : 🎜rrreee🎜En PHP7, nous pouvons utiliser l'opérateur ?? pour remplacer le code ci-dessus. Si $variable est défini, $variable sera attribué à $result, sinon $result se verra attribuer la valeur par défaut. 🎜rrreee🎜Dans le code ci-dessus, $result sera défini sur "valeur par défaut" car $variable est nul. 🎜🎜Résumé🎜🎜Ces deux nouveaux opérateurs peuvent très efficacement éviter les erreurs de Variable non définie et rendre notre code plus clair et plus facile à maintenir. Lors de leur utilisation, il suffit de prêter attention à leur utilisation et à leurs limites. 🎜

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!

Déclaration:
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