Existem diversos tipos de operadores e há toda uma ordem de precedência entre eles, o que significa que alguns têm preferência de execução sobre outros, por exemplo o operador de multiplicação tem precedência em relação aos operadores de soma e subtração. Os operadores executam expressões, fazem atribuição de valores.
Talvez o operador mais utilizado do
PHP seja o operador de atribuição = "igual", ele irá copiar o valor da expressão da direita para dentro da expressão da esquerda, sendo que este pode ser combinado com vários outros operadores.
<?php
$a = 5;
print $a+=8; //é uma maneira resumida de escrever $a=$a+8 e isto vale
//para os demais operadores matemáticos - (menos) , * (multiplicação) , / (divisão)
//resultará 13
print $a-=5;// resulta 8 pois na operação anterior $a passou a valer 13
print $a*=10;//resulta 80
print $a/=5;// resulta 16
print $pnome = 'Woshington';
$snome = 'Rodrigues';
echo $pnome .=$snome; // $pnome será igual a Woshington Rodrigues
?>
O '.' (ponto) é um operador de concatenação usado para juntar strings ou intercalar entre código php e html.
<?php
for( $x=1; $x <=10; $x++) {
if($x % 2 == 0) {
echo $x. 'e par <br />';
} else {
echo $x. ' e impar <br />';
}
}
?>
No código acima utilizamos vários operadores, primeiro na expressão $x=1 utilizamos o operador de atribuição =, depois utilizamos operadores relacionais na expressão $x <= 10, estes são utilizados para comparar resultados e a partir deste retornam um valor booleano.
Logo após utilizamos um operador de pós incremento $x++, se diz ser este um operador de pós incremento pelo motivo que ele retorna para o usuário a variável $x e somente depois da variável retornada é adicionado 1 a ela, por conta disso existe também o operador de pré incremento ++$x, que primeiro soma mais 1 para depois retornar o valor ao usuário.
Há também os operadores de pré decremento --$x e pós decremento $x--, que realizam o mesmo processo, porém com o uso do operador matemático de subtração.
Logo após encontramos o operador que retorna o módulo, ou seja, o resto de uma divisão representado em valor absoluto.
Ex.: (8 % 3 = 2 )
Note que o resto da divisão de 8 por 3 é 2, portanto é este o valor do módulo, e finalmente utilizamos o operador de concatenação (ponto) para concatenar uma string com uma variável.
Dentre os operadores relacionais podemos citar os seguintes:
- Igual a "= =",
- Diferente de ! = ou < >,
- Menor ou igual < =,
- Maior ou igual > =,
- Menor que < ,
- Maior que > ,
- Não idêntico ! = =,
- Idêntico = = =
3 iguais "= = =" servem para testar o tipo da variável.
<?php
$x=10;
$y='10'; //note que este tipo entre apóstrofos (aspas simples) é uma string
if($x = = = $y) {
echo "os tipos são iguais";
} else {
echo "os tipos são diferentes";
}
//result os tipos são diferentes
?>
Caso fosse utilizado o operador = =, o resultado teria sido um true, "os tipos são iguais" pois os valores são os mesmos.
Operadores lógicos
Dentre estes podemos destacar:
- and ou &&, neste caso tanto a expressão A como a B devem retornar true
- or ou | |, neste caso ou a expressão A ou a expressão B ou ambas devem retornar true
- xor ou ^, neste caso ou a expressão A ou a expressão B devem retornar true
- !, neste caso a expressão deve retornar false
Interessante frisar que OR e AND tem precedência maior que && e | |.
Outros operadores:
As chaves [ ] são utilizadas para referenciar arrays, o caractere @ é usado para ignorar erros de uma expressão qualquer, para isso basta colocá-lo pré-fixado ao comando.
@mysql_connect( );
Não irá retornar erro mesmo que não encontre a conexão.
Operador ternário
É uma estrutura if resumida uma maneira mais rápida de executar uma condicional, ao contrário do outro if, o resultado deste pode ser atribuído a uma variável. Acompanhe o exemplo.
<?php
$a = 8;
$a ? print 'sim' : print 'nao'; /* irá retornar um booleano e irá imprimir sim na tela pois $a existe. */
//é o equivalente ao seguinte código
if( $a ) {
print 'sim';
} else {
print 'nao';
}
?>