• Twitter
  • GitHub
  • Flickr
  • Skype
  • Contato

Blog

Docker containers para aplicações PHP usando Nginx, PHP7-FPM, MariaDB e phpMyAdmin: Olá! Estou de volta e abraçado à portabilidade. Tudo a ver com o assunto de hoje.  ...

Melhor com o operador NULL COALESCE do PHP7

Escreveu uma instrução if/else ou utilizou o operador ternário para um caso específico? Talvez a nova feature do PHP7, o operador "??"(null coalesce), seja a forma mais limpa para escrever o código.
Nós temos o nosso amigo condicional "?:" (ternário) que realiza tarefas de atribuição como na expressão: (expr1) ? (expr2) : (expr3) é avaliada para expr2 se expr1 é avaliada como TRUE, ou expr3 se expr1 é avaliada como FALSE.

Veja:

<?php
//o operador condicional "?:" (ternário) 
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
 
//A descrição acima é idêntica a esta instrução if/else
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}
?>

Com a nova feature do PHP7, o operador "??"  é responsável por retornar o primeiro valor, verificando a expr1, caso não exista ou seja nulo, será setado o valor expr2.
Ex.: 

<?php
$action = $_POST['action'] ?? 'default';
?>

E o mais interessante, isso nos permite encadear uma série de valores, lendo da esquerda para a direita. Por exemplo como neste outro caso:

<?php
 
//$a não definido
$b = 10;
 
echo $a ?? 1; //imprime 1
echo $a ?? $b ?? 1; //imprime 10
?>

Veja muito mais sobre PHP7 Novos Recursos.
[],s