Nesta aula estudaremos o Operador Spaceshift, aprenderemos seu funcionamento, onde devemos utiliza-los e também, aprenderemos algumas dicas e truque para extrair ao máximo desse recurso implementado na versão 7 do PHP. |
SPACESHIP OPERATOR
O PHP 7 implementou um operador de nome Spaceship. Com este, somos capazes de verificar 3 situações ao mesmo tempo, ou seja, verificamos se o operando a esquerda é menor, igual ou maior do que o operando a direita. O resultado da verificação será um número inteiro no intervalo entre -1 até 1.
Caso o valor retornado seja -1, o operando a esquerda é menor do o operando a sua direita. Se o valor retornado for igual a 0, os operandos são iguais. Por fim, se o valor retornado for 1, o operando a esquerda é maior do que o operando a direita do operador.
$x <=> $y
Então, temos que a cada verificação feita utilizando o operador SpaceShift, será verificado 3 situações:
- $x é menor do que $Y retorna -1.
- $x é igual a $Y retorna 0.
- $x é menor a $Y retorna 1.
SITUAÇÕES: MENOR OU IGUAL; MAIOR OU IGUAL
Também é possível obter o resultado da expressões menor ou igual ou maior ou igual com o operador spaceshift, neste caso temos que:
$x <==> $y
EXEMPLOS COM NÚMEROS
A seguir, definimos alguns exemplos utilizando números e, já definimos, como sendo comentário, o valor que será retornado.
1 <=> 1 // 0
2 <=> 1 // 1
1 <=> 2 // -1
156 <==> 12 // 1
19 <==> 20 // -1
EXEMPLOS COM ARRAYS
Abaixo definimos uma lista de exemplos e novamente, colocamos como sendo comentários o valor que será impresso no console.
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
EXEMPLOS COM STRINGS
Agora, definimos 3 exemplos utilizando String para estudarmos o funcionamento do operador spaceshift
.
echo "x" <=> "x"; // 0
echo "x" <=> "y"; //-1
echo "y" <=> "x"; //1
EXEMPLO FEITO EM AULA
#SPACESHIFT OPERATOR
foreach(range(0,9) as $v){
$x = rand(0, 9);
$rel = $v <=> $x;
echo "v=$v <=> x=$x é $rel \n";
}
Tags curso, php, operador, spaceshift, spaceshift operator, blog
Comentários
comments powered by Disqus