Ich habe gerade ein Video über kommende PHP 7.4-Funktionen gesehen und diesen ??=
neuen Operator gesehen. Ich kenne den ??
Betreiber bereits. Wie ist das anders?
10
Aus den Dokumenten :
Coalesce gleich oder ?? = Operator ist ein Zuweisungsoperator. Wenn der linke Parameter null ist, weist er dem linken den Wert des rechten Parameters zu. Wenn der Wert nicht null ist, wird nichts unternommen.
Beispiel:
// 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';
Es ist also im Grunde nur eine Abkürzung, einen Wert zuzuweisen, wenn er zuvor noch nicht zugewiesen wurde.
The folloving lines...
In PHP 7 wurde dies ursprünglich veröffentlicht, sodass ein Entwickler eine isset () - Prüfung in Kombination mit einem ternären Operator vereinfachen kann. Zum Beispiel könnten wir vor PHP 7 diesen Code haben:
Als PHP 7 veröffentlicht wurde, konnten wir dies stattdessen wie folgt schreiben:
Wenn jedoch PHP 7.4 veröffentlicht wird, kann dies noch weiter vereinfacht werden in:
Ein Fall, in dem dies nicht funktioniert, ist, wenn Sie einer anderen Variablen einen Wert zuweisen möchten, sodass Sie diese neue Option nicht verwenden können. Obwohl dies begrüßt wird, kann es einige begrenzte Anwendungsfälle geben.
quelle
Der Null-Koaleszenz-Zuweisungsoperator ist eine Kurzform zum Zuweisen des Ergebnisses des Null-Koaleszenz-Operators.
Ein Beispiel aus den offiziellen Versionshinweisen :
quelle
Beispiel Text & Tabellen :
quelle