Neste capítulo discutiremos o uso de diferentes operadores em PHP.
Em PHP, o operador de atribuição = é usado para atribuir um valor a uma variável.
No PHP, o operador aritmético + é usado para somar valores.
operador | nome | descrever | Exemplo | resultado |
---|---|---|---|---|
x + y | adicionar | soma de x e y | 2+2 | 4 |
x-y | reduzir | diferença entre x e y | 5-2 | 3 |
x*y | pegar | produto de x e y | 5*2 | 10 |
x/y | remover | Quociente de x e y | 15/5 | 3 |
x % y | Módulo (resto da divisão) | Restante quando x é dividido por y | 5% 210% 810% 2 | 120 |
-x | negar | negar x | -2 | -2 |
a.b. | justapor | Concatenar duas strings | "Oi" . | Olá |
Os exemplos a seguir demonstram resultados diferentes usando diferentes operadores aritméticos:
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // Saída 16 eco ' <br> ' ; // Quebra de linha eco ( $x - $y ) ; // Saída 4 eco ' <br> ' ; // Quebra de linha eco ( $x * $y ) ; // Saída 60 eco ' <br> ' ; // Quebra de linha eco ( $x / $y ) ; // Saída 1.6666666666667 eco ' <br> ' ; // Quebra de linha eco ( $x % $y ) ; // Saída 4 eco ' <br> ' ; // Quebra de linha eco - $x ? >
A versão PHP7+ possui um novo operador de divisão inteira intdiv() , exemplos de uso:
<?php var_dump ( intdiv ( 10,3 ) ) ? >
O exemplo acima produzirá:
interno(3)
Em PHP, o operador básico de atribuição é "=". Isso significa que o operando esquerdo está definido com o valor da expressão à direita. Ou seja, o valor de “$x = 5” é 5.
operador | Equivalente a | descrever |
---|---|---|
x = y | x = y | O operando esquerdo é definido como o valor da expressão à direita |
x += y | x = x + y | adicionar |
x -= y | x = x - y | reduzir |
x*=y | x = x * y | pegar |
x /= y | x = x / y | remover |
x%=y | x = x % y | Módulo (resto da divisão) |
uma. = b | uma = umab. | Concatenar duas strings |
Os exemplos a seguir demonstram resultados diferentes usando diferentes operadores de atribuição:
<?php $ x = 10 ; $x ; // Saída 10 $y = 20 ; $y + = 100 ; $y ; // Saída 120 $z = 50 ; $z - = 25 ; $z ; // Saída 25 $i = 5 ; $i * = 6 ; $i ; // Saída 30 $j = 10 ; $j / = 5 ; $j ; // Saída 2 $k = 15 ; $k % = 4 ; $k ; // Saída 3 ?>
Os exemplos a seguir demonstram o mesmo resultado usando diferentes operadores de string:
<?php $ a = " Olá " ; $ b = " mundo ! " ; $b ; // Saída Olá mundo! $x = " Olá " ; $x . = " mundo! " ; $x ; // Saída Olá mundo! ?>
operador | nome | descrever |
---|---|---|
++x | pré-incremento | Adicione 1 a x e retorne x |
x++ | pós-incremento | Retorne x e adicione 1 a x |
--x | Pré-decremento | Diminua x em 1 e retorne x |
x -- | Diminuindo depois | Retorna x e depois diminui x em 1 |
O exemplo a seguir demonstra os resultados do uso dos operadores de incremento/decremento:
<?php $x = 10 ; echo ++ $x ; // Saída 11 $ y = 10 ; $y ++; // Saída 10 $z = 5 ; echo -- $z ; // Saída 4 $ i = 5 ; $i --; // Saída 5 ?>
Os operadores de comparação permitem comparar dois valores:
operador | nome | descrever | Exemplo |
---|---|---|---|
x == y | igual | Retorna verdadeiro se x for igual a y | 5==8 retorna falso |
x === y | absolutamente igual a | Retorna verdadeiro se x for igual a y e eles forem do mesmo tipo | 5==="5" retorna falso |
x! = y | não é igual a | Retorna verdadeiro se x não for igual a y | 5!=8 retorna verdadeiro |
x <> y | não é igual a | Retorna verdadeiro se x não for igual a y | 5<>8 retorna verdadeiro |
== y | Definitivamente não é igual a | Retorna verdadeiro se x não for igual a y ou se não forem do mesmo tipo | 5!=="5" retorna verdadeiro |
x > y | maior que | Retorna verdadeiro se x for maior que y | 5>8 retorna falso |
x < y | menor que | Retorna verdadeiro se x for menor que y | 5<8 retorna verdadeiro |
x >= y | Maior ou igual a | Retorna verdadeiro se x for maior ou igual a y | 5>=8 retorna falso |
x <= y | menor ou igual a | Retorna verdadeiro se x for menor ou igual a y | 5<=8 retorna verdadeiro |
Os exemplos a seguir demonstram resultados diferentes usando alguns operadores de comparação:
<?php $ x = 100 ; $ y = " 100 " ;" <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x ! == $y ) ; " <br> " ; $ a = 50 ; $ b = 90 ;" <br> " ; var_dump ( $a < $b ) ? >
operador | nome | descrever | Exemplo |
---|---|---|---|
x e y | e | Retorna verdadeiro se x e y forem verdadeiros | x=6y=3(x < 10 e y > 1) retorna verdadeiro |
x ou y | ou | Retorna verdadeiro se pelo menos um de x e y for verdadeiro | x=6y=3(x==6 ou y==5) retorna verdadeiro |
x x ou y | XOR | Se um e apenas um de xey for verdadeiro, então retorne verdadeiro | x=6y=3(x==6 xou y==3) retorna falso |
x && y | e | Retorna verdadeiro se x e y forem verdadeiros | x=6y=3(x < 10 && y > 1) retorna verdadeiro |
x || | ou | Retorna verdadeiro se pelo menos um de x e y for verdadeiro | x=6y=3(x==5 || y==5) retorna falso |
!x | Não | Se x não for verdadeiro, retorne verdadeiro | x=6y=3!(x==y) retorna verdadeiro |
operador | nome | descrever |
---|---|---|
x + y | juntar | o conjunto de x e y |
x == y | igual | Retorna verdadeiro se x e y tiverem o mesmo par chave/valor |
x === y | Igualdade | Retorna verdadeiro se x e y tiverem os mesmos pares chave/valor na mesma ordem e tipo |
x! = y | Diferente | Retorna verdadeiro se x não for igual a y |
x <> y | Diferente | Retorna verdadeiro se x não for igual a y |
== y | Não idêntico | Retorna verdadeiro se x não for igual a y |
Os exemplos a seguir demonstram resultados diferentes usando alguns operadores de array:
<?php $x = array ( " a " => " vermelho " , " b " => " verde " ) ; $ y = array ( " c " => " azul " , " d " => " amarelo " ) ; = $x + $y ; // Combina as matrizes $x e $y var_dump ( $ z ) ; var_dump ( $ x == $ y ) ; x !== $y ) ? >
Outro operador condicional é o operador "?:" (ou ternário).
(expr1) ? (expr2): (expr3)
O valor quando expr1 é avaliado como TRUE é expr2 e quando expr1 é avaliado como FALSE o valor é expr3.
A partir do PHP 5.3, a parte central do operador ternário pode ser omitida. A expressão expr1 ?: expr3 retorna expr1 se expr1 for avaliado como TRUE e expr3 caso contrário.
No exemplo a seguir, considera-se que a solicitação $_GET contém o valor do usuário. Nesse caso, $_GET['user'] é retornado, caso contrário, ninguém é retornado:
<?php $test = ' Tutorial do Coder ' ; // Método de escrita normal $ nomedeusuário = isset ( $teste ) ? $teste : ' ninguém ' ; $username , PHP_EOL ; // Método de escrita da versão PHP 5.3+ $nomedeusuario = $teste ? : ' ninguém ' ; $ nomedeusuário , PHP_EOL ;
Tutoriais para codificadores Tutoriais de codificadores
Nota: PHP_EOL é um caractere de nova linha, compatível com plataformas maiores.
Existe um operador de coalescência NULL adicional ??
na versão PHP7+.
<?php // Se $_GET['user'] não existir, retorne 'nobody', caso contrário retorne o valor de $_GET['user'] $username = $_GET [ ' user ' ] ?? ' ninguém ' ; // Operador ternário semelhante $ nomedeusuário = isset ( $_GET [ ' usuário ' ] ) $_GET [ ' usuário ' ] : ' ninguém ' ? >
PHP7+ suporta operadores de comparação combinados, os exemplos são os seguintes:
<?php // Tipo inteiro eco 1 <=> 1 ; eco 1 <=> 2 ; // -1 eco 2 <=> 1 ; // Tipo de ponto flutuante eco 1,5 <=> 1,5 ; eco 1,5 <=> 2,5 ; eco 2,5 <=> 1,5 ; // Corda eco " a " <=> " a " ; eco " a " <=> " b " ; eco " b " <=> " a " ; ?>
A tabela a seguir lista os operadores da maior para a menor precedência. Os operadores na mesma linha têm a mesma precedência e a direção em que são combinados determina a ordem de avaliação.
Nota : Esquerda = da esquerda para a direita, direita = da direita para a esquerda.
Direção de ligação | operador | Informações adicionais |
---|---|---|
nenhum | clonar novo | clone e novo |
Esquerda | [ | variedade() |
certo | ++ -- ~ (int) (float) (string) (array) (objeto) (bool) @ | Tipos e incremento/decremento |
nenhum | instância de | tipo |
certo | ! | Operadores lógicos |
Esquerda | */% | operadores aritméticos |
Esquerda | + – . | Operadores aritméticos e de string |
Esquerda | << >> | Operadores de bits |
nenhum | == != === !== <> | operador de comparação |
Esquerda | & | Operadores de bits e referências |
Esquerda | ^ | Operadores de bits |
Esquerda | | | Operadores de bits |
Esquerda | && | Operadores lógicos |
Esquerda | || | Operadores lógicos |
Esquerda | ?: | operador ternário |
certo | = += -= *= /= .= %= &= |= ^= <<= >>= => | operador de atribuição |
Esquerda | e | Operadores lógicos |
Esquerda | xor | Operadores lógicos |
Esquerda | ou | Operadores lógicos |
Esquerda | , | Usado em muitos lugares |
Na precedência do operador, or, ||, && e and são todos operadores lógicos com o mesmo efeito, mas suas prioridades são diferentes.
<?php // Prioridade: && > = > e // Prioridade: || > = > ou $a = 3 ; $b = falso ; $c = $a ou $b ; var_dump ( $c ) ; // $c aqui é o valor int 3, não o valor booleano true $d = $a || $b ; var_dump ( $d ) ; // $d aqui é o valor booleano verdadeiro ?>
O resultado de saída do exemplo acima é:
int(3)bool(verdadeiro)
Indicamos claramente a ordem das operações por meio do emparelhamento de colchetes, em vez de confiar na precedência do operador e na associatividade, o que geralmente pode aumentar a legibilidade do código.
<?php // Operação de prioridade de colchetes $ a = 1 ; $ b = 2 ; $ c = 3 ;$ d ; " n " ; $e = ( $a + $ b ) * $ c ; eco $ e ; " n " ? >
O resultado de saída do exemplo acima é:
79