Właśnie widziałem film o nadchodzących funkcjach PHP 7.4 i widziałem tego ??=
nowego operatora. Znam już ??
operatora. Czym się to różni?
9
Z dokumentów :
Koalescencja równa lub operator = = jest operatorem przypisania. Jeśli lewy parametr ma wartość null, przypisuje wartość prawego parametru do lewego. Jeśli wartość nie jest równa null, nic się nie dzieje.
Przykład:
// 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';
Więc jest to po prostu skrót do przypisania wartości, jeśli nie została wcześniej przypisana.
The folloving lines...
W PHP 7 została ona pierwotnie wydana, umożliwiając programistom uproszczenie kontroli isset () w połączeniu z operatorem trójskładnikowym. Na przykład przed PHP 7 możemy mieć ten kod:
Kiedy PHP 7 zostało wydane, zamiast tego mogliśmy napisać to jako:
Jednak teraz, gdy PHP 7.4 zostanie wydane, można to jeszcze bardziej uprościć:
Jednym z przypadków, w którym to nie działa, jest próba przypisania wartości do innej zmiennej, więc nie można użyć tej nowej opcji. W związku z tym, choć jest to mile widziane, może istnieć kilka ograniczonych przypadków użycia.
źródło
Operator zerowania koalescencji jest skrótowym sposobem przypisywania wyniku operatorowi zerowania koalescencji.
Przykład z oficjalnych informacji o wersji :
źródło
Przykładowe dokumenty :
źródło