Je viens de voir une vidéo sur les prochaines fonctionnalités de PHP 7.4 et j'ai vu ce ??=
nouvel opérateur. Je connais déjà l' ??
opérateur. En quoi est-ce différent?
10
De la documentation :
Coalesce égal ou ?? = opérateur est un opérateur d'affectation. Si le paramètre gauche est nul, affecte la valeur du paramètre droit à celui de gauche. Si la valeur n'est pas nulle, rien n'est fait.
Exemple:
// The folloving lines are doing the same
$this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value';
// Instead of repeating variables with long names, the equal coalesce operator is used
$this->request->data['comments']['user_id'] ??= 'value';
Il s'agit donc simplement d'un raccourci pour attribuer une valeur si elle n'a pas été affectée auparavant.
The folloving lines...
En PHP 7, cela a été initialement publié, permettant à un développeur de simplifier une vérification isset () combinée à un opérateur ternaire. Par exemple, avant PHP 7, nous pourrions avoir ce code:
Lorsque PHP 7 a été publié, nous avons pu écrire ceci à la place:
Maintenant, cependant, lorsque PHP 7.4 est sorti, cela peut être encore simplifié:
Un cas où cela ne fonctionne pas est si vous cherchez à affecter une valeur à une variable différente, vous ne pourrez donc pas utiliser cette nouvelle option. En tant que tel, bien que cela soit bienvenu, il pourrait y avoir quelques cas d'utilisation limitée.
la source
L'opérateur d'affectation coalescent nul est un moyen raccourci d'assigner le résultat de l'opérateur coalescent nul.
Un exemple des notes de version officielles :
la source
Exemples de documents :
la source