Acabei de ver um vídeo sobre os próximos recursos do PHP 7.4 e vi esse ??=
novo operador. Eu já conheço o ??
operador. Como isso é diferente?
10
Dos documentos :
Coalesce igual ou ?? = operador é um operador de atribuição. Se o parâmetro esquerdo for nulo, atribua o valor do parâmetro direito à esquerda. Se o valor não for nulo, nada será feito.
Exemplo:
// 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';
Portanto, é basicamente apenas uma abreviação para atribuir um valor se ele não tiver sido atribuído antes.
The folloving lines...
No PHP 7, isso foi lançado originalmente, permitindo que um desenvolvedor simplificasse uma verificação isset () combinada com um operador ternário. Por exemplo, antes do PHP 7, poderíamos ter este código:
Quando o PHP 7 foi lançado, pudemos escrever isso como:
Agora, no entanto, quando o PHP 7.4 é lançado, isso pode ser simplificado ainda mais:
Um caso em que isso não funciona é se você deseja atribuir um valor a uma variável diferente, portanto, não poderá usar esta nova opção. Como tal, embora isso seja bem-vindo, pode haver alguns casos de uso limitados.
fonte
O operador de atribuição de coalescência nula é uma maneira abreviada de atribuir o resultado do operador de coalescência nula.
Um exemplo das notas oficiais de lançamento :
fonte
Documentos de exemplo :
fonte