O que é isso?
Esta é uma coleção de perguntas que surgem de vez em quando sobre sintaxe no PHP. Este também é um Wiki da comunidade, portanto todos são convidados a participar da manutenção desta lista.
Por que é isso?
Costumava ser difícil encontrar perguntas sobre operadores e outros tokens de sintaxe.¹
A idéia principal é ter links para perguntas existentes no Stack Overflow, para que seja mais fácil referenciá-las, não copiar sobre o conteúdo do Manual do PHP.
Nota: Desde janeiro de 2013, o Stack Overflow suporta caracteres especiais . Apenas coloque os termos da pesquisa entre aspas, por exemplo[php] "==" vs "==="
O que devo fazer aqui?
Se você foi indicado aqui por alguém por ter feito essa pergunta, encontre a sintaxe específica abaixo. As páginas vinculadas ao manual do PHP, juntamente com as perguntas vinculadas, provavelmente responderão à sua pergunta. Em caso afirmativo, você é incentivado a votar novamente na resposta. Esta lista não pretende substituir a ajuda fornecida por outras pessoas.
A lista
Se o seu token específico não estiver listado abaixo, você poderá encontrá-lo na Lista de Tokens do Analisador .
&
Operadores ou referências bit a bit
- O que significa iniciar uma função PHP com um e comercial?
- Entendendo o operador PHP & (e comercial, bit a bit e)
- Operador PHP "&"
- Diferença entre & e && em PHP
- O que "&" significa aqui em PHP?
- O que "&" significa neste caso?
- O que o sinal "&" significa em PHP?
- O que essa assinatura significa (&) em PHP?
- Como o operador "&" funciona em uma função PHP?
- O que & in & 2 significa em PHP?
- Quando devo usar um operador bit a bit?
- Existe a necessidade de usar e comercial na frente de um objeto? (& $)
=&
Referências
- Operador de atribuição de referência em PHP, = &
- O que significam os operadores "= &" e "& =" no PHP?
- O que os operadores '& =' e '= &' fazem?
- O que significa = & significa em PHP?
- 'AND' vs '&&' como operador
- Diferença entre & e && em PHP
- Existe alguma diferença entre os operadores "e" e "&&" no PHP?
- PHP - e / ou palavras-chave
- O que o sinal de porcentagem significa em PHP?
- O que é o operador PHP% e como eu o uso em exemplos do mundo real?
@
Operadores de controle de erros
- Qual é o uso do símbolo @ no PHP?
- Símbolo 'At' antes do nome da variável no PHP: @ $ _ POST
- Funções PHP e @functions
- Devo usar @ no meu código PHP?
- O que significa @ em PHP?
- O que são os operadores PHP "?" e ":" chamado e o que eles fazem?
- ?: operator (o 'operador Elvis') em PHP
- Onde posso ler sobre condicionais feitos com "?" e ":" (dois pontos)?
- Usando o PHP 5.3?: Operador
??
Operador de coalescência nula (desde PHP 7)
?string
?int
?array
?bool
?float
Declaração de tipo de retorno anulável (desde PHP 7.1)
:
Sintaxe alternativa para estruturas de controle , Operador Ternário
::
Operador de resolução de escopo
- O que dois pontos significam em PHP?
- Qual é o significado do nome do token PHP T_PAAMAYIM_NEKUDOTAYIM?
- Qual é a diferença entre :: (dois pontos duplos) e -> (seta) no PHP?
- O que exatamente são as ligações estáticas tardias no PHP?
- static :: staticFunctionName ()
- Inesperado T_PAAMAYIM_NEKUDOTAYIM, esperando T_NS_Separator
- Como é chamado o operador PHP "->" e como você diz isso ao ler o código em voz alta?
- Onde usamos o operador de objeto "->" no PHP?
- Qual é a diferença entre :: (dois pontos duplos) e -> (seta) no PHP?
- O que significa a sintaxe do PHP $ var1 -> $ var2?
- O que "->" significa / se refere no PHP?
=>
Matrizes
- O que significa "=>" em PHP?
- Uso de => em PHP
- O que $ k => $ v no foreach ($ ex como $ k => $ v) significa?
- O que <<< END significa em PHP?
- Expressão PHP <<< EOB
- No PHP, o que "<<<" representa?
- Usando <<< CON em PHP
- O que é esse tipo de sintaxe no PHP?
- Como os operadores de comparação de igualdade do PHP (== duplos iguais) e identidade (=== triplos iguais) diferem?
- Operadores PHP! = E ==
- Os 3 iguais iguais
- Malabarismo de tipo e (estrito) maior / menor que comparações no PHP
- O que significa "==="?
- Como os operadores de comparação de igualdade do PHP (== duplos iguais) e identidade (=== triplos iguais) diferem?
- Os 3 iguais iguais
- Malabarismo de tipo e (estrito) maior / menor que comparações no PHP
- Operadores PHP! = E ==
- Existe uma diferença entre! == e! = No PHP?
- comparando,! == versus! =
- Qual é a diferença entre <> e! =
- Operador PHP <>
- Operador <> do PHP
- Qual é a diferença entre <> e! =
- Malabarismo de tipo e (estrito) maior / menor que comparações no PHP
<=>
Operadores de comparação (desde PHP 7.0)
- Qual é a diferença entre o | e || operadores?
- O que faz usando um único tubo '|' Em um argumento de função, faça?
- Qual é a diferença entre o | e || operadores?
- PHP - e / ou palavras-chave
- O que exatamente faz || significar?
- O comportamento do operador or em PHP
+
Operadores aritméticos , operadores de matriz
+=
e -=
operadores de atribuição
++
e --
Incrementando / Decrementando Operadores
- Diferença entre ponto e vírgula ao concatenar com eco versus retorno?
- O que faz um . (ponto) fazer em PHP?
- O que $$ (dólar em dólar ou dólar em dobro) significa em PHP?
- o que é "$$" em PHP
- variável $ function () e $$
[]
Matrizes (sintaxe curta desde o PHP 5.4)
- Matrizes PHP ... Qual é / são os significados de um colchete vazio?
- Qual é o significado de []
- Php array_push () vs myArray []
- O que significa [] ao ler de uma matriz PHP?
- Atalho para matrizes:
$var = []
matriz vazia literal
<?
Tags de abertura e fechamento
...
Desempacotamento de argumento (desde PHP 5.6)
**
Exponenciação (desde PHP 5.6)
#
Comentário de uma linha no estilo de shell
?->
Chamadas do operador NullSafe
/**
?$
variável, mas apenas sobre$$
variáveis variáveis. Eu acredito que isso deve ser alterado em algum lugar.Respostas:
Operadores de incremento / decrescimento
++
operador de incremento--
operador de decrementoEstes podem ir antes ou depois da variável.
Se colocada antes da variável, a operação de incremento / decremento é feita primeiro para a variável e, em seguida, o resultado é retornado. Se colocada após a variável, a variável será retornada primeiro , e a operação de incremento / decremento será concluída.
Por exemplo:
Exemplo ao vivo
No caso acima
++$i
é usado, pois é mais rápido.$i++
teria os mesmos resultados.O pré-incremento é um pouco mais rápido, porque realmente incrementa a variável e depois 'retorna' o resultado. O pós-incremento cria uma variável especial, copia lá o valor da primeira variável e somente depois que a primeira variável é usada, substitui seu valor por segundos.
No entanto, você deve usar
$apples--
, pois, primeiro, você deseja exibir o número atual de maçãs e, em seguida, deseja subtrair um número.Você também pode incrementar letras no PHP:
Uma vez
z
atingidoaa
é o próximo, e assim por diante.Posts de estouro de pilha:
fonte
Operador bit a bit
O que é um pouco? Um bit é uma representação de 1 ou 0. Basicamente OFF (0) e ON (1)
O que é um byte? Um byte é composto de 8 bits e o valor mais alto de um byte é 255, o que significaria que cada bit está definido. Veremos por que o valor máximo de um byte é 255.
Esta representação de 1 Byte
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 Byte)
Alguns exemplos para uma melhor compreensão
O operador "AND":
&
Isso produziria o número 8. Por que? Bem, vamos ver usando o nosso exemplo de tabela.
Então você pode ver na tabela o único bit que eles compartilham é o 8 bits.
Segundo exemplo
Os dois bits compartilhados são 32 e 4, que quando somados retornam 36.
O operador "Or":
|
Isso produziria o número 11. Por que?
Você notará que temos 3 bits definidos nas colunas 8, 2 e 1. Adicione-os: 8 + 2 + 1 = 11.
fonte
and &
é0 0 0 0 1 0 0 0
eor |
é0 0 0 0 1 0 1 1
?<=>
Operador da nave espacialAdicionado no PHP 7
O operador nave espacial
<=>
é a mais recente operador de comparação adicionado em PHP 7. É um não associativo operador binário com o mesmo precedência como operadores de igualdade (==
,!=
,===
,!==
). Esse operador permite uma comparação de três vias mais simples entre os operandos do lado esquerdo e do lado direito.O operador resulta em uma expressão inteira de:
0
quando ambos os operandos são iguais0
quando o operando do lado esquerdo é menor que o operando do lado direito0
quando o operando do lado esquerdo é maior que o operando do lado direitopor exemplo
Uma boa aplicação prática do uso desse operador seria nos retornos de chamada do tipo de comparação que devem retornar um número inteiro zero, negativo ou positivo com base em uma comparação de três vias entre dois valores. A função de comparação passada para
usort
é um exemplo.Antes do PHP 7, você escrevia ...
Desde o PHP 7 você pode escrever ...
fonte
$a <=> $b
é diferente$a - $b
$a - $b
funciona para números, mas não para cadeias, objetos ou matrizes.$a - $b
, nem sequer funciona para números; funciona apenas para números inteiros . Ele não funciona para números não inteiros, porqueusort
lança os valores de retorno da função comparadora paraint
, o que significa que 0,5 é convertido em 0, o que significa que dois números com uma diferença menor que 1, como 4 e 4,6, podem (dependendo no qual um é passado como o primeiro argumento para sua função comparadora), incorretamente, compare como igual._
Alias para gettext ()O caractere sublinhado '_' como em
_()
é um alias para agettext()
função.fonte
fonte
Constantes mágicas : Embora estes não sejam apenas símbolos, são parte importante dessa família de símbolos. Existem oito constantes mágicas que mudam dependendo de onde são usadas.
__LINE__
: O número da linha atual do arquivo.__FILE__
: O caminho completo e o nome do arquivo. Se usado dentro de uma inclusão, o nome do arquivo incluído é retornado. Desde o PHP 4.0.2,__FILE__
sempre contém um caminho absoluto com links simbólicos resolvidos, enquanto nas versões mais antigas ele continha um caminho relativo em algumas circunstâncias.__DIR__
: O diretório do arquivo. Se usado dentro de uma inclusão, o diretório do arquivo incluído é retornado. Isso é equivalente adirname(__FILE__)
. Esse nome de diretório não possui uma barra final, a menos que seja o diretório raiz. (Adicionado no PHP 5.3.0.)__FUNCTION__
: O nome da função. (Adicionado no PHP 4.3.0) A partir do PHP 5, essa constante retorna o nome da função como foi declarada (diferencia maiúsculas de minúsculas). No PHP 4, seu valor é sempre em minúsculas.__CLASS__
: O nome da classe. (Adicionado no PHP 4.3.0) A partir do PHP 5, essa constante retorna o nome da classe como foi declarado (diferencia maiúsculas de minúsculas). No PHP 4, seu valor é sempre em minúsculas. O nome da classe inclui o espaço para nome em que foi declarado (por exemploFoo\Bar
). Note que a partir do PHP 5.4__CLASS__
também funciona em características. Quando usado em um método de característica,__CLASS__
é o nome da classe na qual a característica é usada.__TRAIT__
: O nome da característica. (Adicionado no PHP 5.4.0) A partir do PHP 5.4, essa constante retorna a característica como foi declarada (diferencia maiúsculas de minúsculas). O nome da característica inclui o espaço para nome em que foi declarado (por exemploFoo\Bar
).__METHOD__
: O nome do método da classe. (Adicionado no PHP 5.0.0) O nome do método é retornado como foi declarado (diferencia maiúsculas de minúsculas).__NAMESPACE__
: O nome do espaço para nome atual (diferencia maiúsculas de minúsculas). Esta constante é definida em tempo de compilação (adicionada no PHP 5.3.0).Fonte
fonte
Operadores de tipo
instanceof
é usado para determinar se uma variável PHP é um objeto instanciado de uma determinada classe.O exemplo acima exibirá:
Razão: O exemplo acima
$a
é um objeto domclass
portanto, use apenasmclass
dados que não sejam uma instância dosclass
Exemplo com herança
O exemplo acima exibirá:
Exemplo com Clone
O exemplo acima exibirá:
fonte
Uma visão geral dos operadores em PHP :
Operadores lógicos:
Operadores de comparação:
Operadores aritméticos:
Operadores de incremento / decrescimento:
Operadores bit a bit:
Operadores de seqüência de caracteres:
Operadores de matriz:
Operadores de atribuição:
Nota
and
operador eor
operador têm menor precedência que o operador de atribuição=
.Isso significa que
$a = true and false;
é equivalente a($a = true) and false
.Na maioria dos casos, você provavelmente desejará usar
&&
e||
, que se comportam de uma maneira conhecida em linguagens como C, Java ou JavaScript.fonte
$a ?? $c
, diz que é o mesmo que$a ? $a : $c
, mas o operador ternário verifica se o valor é verdadeiro; por outro lado, a coalescência nula verifica valores nulos; portanto, se $ a for 0, você receberá 0 (porque 0 é não nulo), por exemplo, se você tiver:$a=0; $c=5;
então$a?$a:$c
retorna 5 e$a??$c
retorna 0. #Operador de nave espacial
<=>
(adicionado no PHP 7)Exemplos para
<=>
operador de nave espacial (PHP 7, Fonte: Manual do PHP):Inteiros, flutuadores, seqüências de caracteres, matrizes e objetos para comparação de variáveis de três vias.
fonte
{}
SuspensóriosE algumas palavras sobre o último post
fonte
Operador coalescente nulo (??)
Esse operador foi adicionado no PHP 7.0 para o caso comum de precisar usar um operador ternário em conjunto com
isset()
. Retorna seu primeiro operando se ele existe e não éNULL
; caso contrário, ele retornará seu segundo operando.fonte
Strings PHP: As Strings PHP podem ser especificadas de quatro maneiras e não apenas de duas maneiras:
1) Cordas de aspas simples:
2) Cordas de aspas duplas:
3) Heredoc:
4) Nowdoc (desde PHP 5.3.0):
fonte
QUESTÃO:
O que
=>
significa isso ?RESPONDA:
=>
É o símbolo que nós humanos decidimos usar para separar"Key" => "Value"
pares em matrizes associativas.ELABORAÇÃO:
Para entender isso, precisamos saber o que são matrizes associativas. A primeira coisa que surge quando um programador convencional pensa em uma matriz ( em PHP ) seria algo semelhante a:
Onde, se quiséssemos chamar a matriz em alguma parte posterior do código, poderíamos fazer:
Por enquanto, tudo bem. No entanto, como seres humanos, podemos achar difícil lembrar que o índice
[0]
da matriz é o valor do ano de 2016, o índice[1]
da matriz é uma saudação e o índice[2]
da matriz é um valor inteiro simples . A alternativa que teríamos então seria usar o que é chamado de Matriz Associativa . Uma matriz associativa possui algumas diferenças em relação a uma matriz seqüencial ( que é o caso anterior, pois incrementa o índice usado em uma sequência predeterminada, incrementando em 1 para cada valor a seguir ).Diferenças ( entre uma matriz seqüencial e associativa ):
Durante a declaração de uma matriz associativa, você não inclui apenas o
value
que deseja colocar na matriz, mas também coloca o valor do índice (chamado dekey
) que deseja usar ao chamar a matriz em partes posteriores do código. A sintaxe a seguir é usada durante a sua declaração:"key" => "value"
.Ao usar a Matriz associativa, o
key
valor será colocado dentro do índice da matriz para recuperar o desejadovalue
.Por exemplo:
E agora, para receber a mesma saída de antes, o
key
valor seria usado no índice de matrizes:PONTO FINAL:
Portanto, a partir do exemplo acima, é muito fácil ver que o
=>
símbolo é usado para expressar o relacionamento de uma Matriz associativa entre cada um dos pareskey
evalue
em uma matriz DURANTE a iniciação dos valores dentro da matriz.fonte
Pergunta :
O que "&" significa aqui em PHP?
Operador PHP "&"
Facilita a vida assim que nos acostumamos. (Veja o exemplo abaixo com atenção)
& normalmente verifica os bits definidos em $ a e $ b.
Então, por trás de tudo, há um jogo de operador e bits bit a bit.
Um caso útil disso são as configurações fáceis, como abaixo, para que um único campo inteiro possa armazenar milhares de combinações para você.
A maioria das pessoas já leu os documentos, mas não liberou o caso de uso do mundo real desses operadores bit a bit.
Exemplo que você vai adorar
fonte
==
é usado para verificar a igualdade sem considerar o tipo de dados variável===
é usado para a igualdade cheque de tanto a variável de valor e do tipo de dadosExemplo
$a = 5
if ($a == 5)
- avaliará como verdadeiroif ($a == '5')
- será avaliado como true, porque, ao comparar esse valor, o PHP converte internamente esse valor da string em número inteiro e, em seguida, compara os dois valoresif ($a === 5)
- avaliará como verdadeiroif ($a === '5')
- será avaliado como falso, porque o valor é 5, mas esse valor 5 não é um número inteiro.fonte
Operador de coalescência nula "??" (Adicionado no PHP 7)
Não é o nome mais atraente para um operador, mas o PHP 7 traz a coalescência nula bastante útil, então pensei em compartilhar um exemplo.
No PHP 5, já temos um operador ternário, que testa um valor e, em seguida, retorna o segundo elemento se retornar true e o terceiro se não retornar:
Também existe uma abreviação para isso, que permite pular o segundo elemento se for o mesmo que o primeiro: echo $ count?: 10; // também gera 10
No PHP 7, obtemos adicionalmente o ?? Um operador que, em vez de indicar confusão extrema, é assim que eu usaria dois pontos de interrogação juntos, permite-nos encadear uma cadeia de valores. Lendo da esquerda para a direita, o primeiro valor que existe e não é nulo é o valor que será retornado.
Essa construção é útil para dar prioridade a um ou mais valores provenientes talvez da entrada do usuário ou da configuração existente e retornar com segurança a um determinado padrão se essa configuração estiver ausente. É um recurso pequeno, mas sei que usarei assim que meus aplicativos forem atualizados para o PHP 7.
fonte
Declaração de tipo de retorno anulável
O PHP 7 adiciona suporte para declarações de tipo de retorno. Da mesma forma que as declarações de tipo de argumento, as declarações de tipo de retorno especificam o tipo de valor que será retornado de uma função. Os mesmos tipos estão disponíveis para declarações de tipo de retorno e estão disponíveis para declarações de tipo de argumento.
A digitação estrita também afeta as declarações de tipo de retorno. No modo fraco padrão, os valores retornados serão coagidos para o tipo correto se ainda não forem desse tipo. No modo forte, o valor retornado deve ser do tipo correto, caso contrário, um TypeError será lançado.
A partir do PHP 7.1.0, os valores retornados podem ser marcados como nulos, prefixando o nome do tipo com um ponto de interrogação (?). Isso significa que a função retorna o tipo especificado ou NULL.
Fonte
fonte
Três DOTS como Operador Splat (...) (desde PHP 5.6)
O PHP possui um operador "..." (Três pontos), chamado Operador Splat. É usado para passar um número arbitrário de parâmetros em uma função e esse tipo de função é chamado de Funções Variadic. Vamos dar exemplos para usar "..." (Três pontos).
Cada argumento da função generateNumbers () passa por $ params como uma matriz quando usa "...".
Existem muitas maneiras diferentes de usar o operador "...". Abaixo alguns exemplos:
fonte
? -> Operador NullSafe
No momento, é apenas uma proposta, você pode encontrá-la aqui . É o
NullSafe Operator
, retornanull
caso você tente invocar funções ou obter valores denull
... Exemplofonte
Operador NullSafe "? ->" (possivelmente) desde o php8
No momento, é apenas uma proposta, você pode encontrá-la aqui .
?->
é oNullSafe Operator
retornonull
, caso você tente invocar funções ou obter valores denull
...Exemplos:
fonte