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'
Foi útil?

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'.

É chamado de operador condicional

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';
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top