Usando o operador spaceship do PHP7

6 years ago by Jaime Neto

Pra quem ainda não está familiarizado com esse novo operador do PHP7, o spaceship, eis um resumo de sua funcionalidade: ele serve pra comparar dois valores, e saber se o primeiro operando é menor, igual ou maior que o segundo. Ou seja, ele junta os operadores <, == e > num só, formando <=>. Vejamos como seria fazer essas três comparações sem esse operador:

if ($a < $b) {
    echo 'A é menor que B';
} elseif ($a == $b) {
    echo 'A é igual a B';
} elseif ($a > $b) {
    echo 'A é maior que B';
}

Agora, vejamos usando do operador spaceship:

switch ($a <=> $b) {
    case -1: echo 'A é menor que B'; break;
    case  0: echo 'A é igual a B';   break;
    case  1: echo 'A é maior que B'; break;
}

Ou seja, o operador retorna "menos um" (-1) quando o primeiro operando é menor que o segundo, "zero" (0) quando é igual e "um" (1) quando é maior que o segundo operando. Parece algo muito simples, mas pode nos poupar muitos "ifs", e linhas extras na codificação, e ajudar a manter o código mais enxuto e legível.

Comments