O que essa sintaxe (página = $ página? $ Página: 'padrão') no php significa?
-
21-09-2019 - |
Pergunta
Eu sou novo no PHP. Eu me deparei com essa sintaxe em WordPress. O que a última linha desse código faz?
$page = $_SERVER['REQUEST_URI'];
$page = str_replace("/","",$page);
$page = str_replace(".php","",$page);
$page = $page ? $page : 'default'
Solução
É um exemplo do operador condicional no PHP.
É a versão abreviada de:
if (something is true ) {
Do this
}
else {
Do that
}
Ver Usando operadores se/else Ternário http://php.net/manual/en/language.operators.comparison.php.
Outras dicas
Isso é O operador ternário:
Essa linha se traduz em
if ($page)
$page = $page;
else
$page = 'default';
É um Operação ternária O que não é PHP ou WordPress específico, ele existe na maioria dos langauges.
(condition) ? true_case : false_case
Portanto, neste caso, o valor de $ Page será "padrão", quando $ Page for algo semelhante ao FALSE - caso contrário, permanecerá inalterado.
Isso significa que, se $ Page não tiver um valor (ou for zero), defina -o como 'padrão'.
Isso significa que se a variável $ página não estiver vazia, atribua a variável $ página na última linha que variável ou defina -a como 'padrão'.
Sintaxe mais detalhada da última linha é:
if ($page)
{
$page = $page;
}
else
{
$page = 'default';
}
Isso é o chamado operador condicional. Funciona como uma declaração if-else, então
$page = $page ? $page : 'default';
faz o mesmo que
if($page)
{
$page = $page;
}
else
{
$page = 'default';
}