PHP sintaxe pergunta: O que faz o ponto de interrogação e de cólon média? [duplicado]

StackOverflow https://stackoverflow.com/questions/1276909

  •  16-09-2019
  •  | 
  •  

Pergunta

Duplicate possíveis:
rápida pergunta sintaxe php

return $add_review ? FALSE : $arg;

O que fazer ponto de interrogação e de cólon média?

Graças

Foi útil?

Solução

Este é o PHP ternário operador (também conhecido como um operador condicional) - se primeiro operando avalia verdade, avaliar como segundo operando, outra avaliar como terceiro operando

.

Pense nisso como um "se" declaração que você pode usar em expressões. Pode ser muito útil na tomada de atribuições concisas que dependem de alguma condição, por exemplo.

$param = isset($_GET['param']) ? $_GET['param'] : 'default';

Há também uma versão abreviada deste (em PHP 5.3 em diante). Você pode deixar de fora o operando meio. O operador irá avaliar como o primeiro operando, se é verdade, eo terceiro operando contrário. Por exemplo:

$result = $x ?: 'default';

É importante mencionar que o código acima ao usar ie $ _GET ou $ _POST variável vai jogar aviso índice indefinido e para evitar que precisamos usar uma versão mais longa, com isset ou a operador nulo coalescentes que é introduzido no PHP7:

$param = $_GET['param'] ?? 'default';

Outras dicas

É a forma ternária do operador if-else. A declaração acima lê basicamente assim:

if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}

Veja aqui para mais detalhes sobre ternário op em PHP: http: //www.addedbytes. com / php / ternário-condicionais /

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top