Что означает этот синтаксис (page = $ page? $ Page: 'default') в PHP? - PullRequest
3 голосов
/ 20 января 2010

Я новичок в PHP.Я сталкивался с этим синтаксисом в WordPress .Что делает последняя строка этого кода?

$page = $_SERVER['REQUEST_URI'];
$page = str_replace("/","",$page);
$page = str_replace(".php","",$page);
$page = $page ? $page : 'default'

Ответы [ 7 ]

7 голосов
/ 20 января 2010

Это троичный оператор :

Эта строка переводится как

if ($page)
    $page = $page;
else
    $page = 'default';
6 голосов
/ 20 января 2010

Это пример условного оператора в PHP.

Это сокращенная версия:

if (something is true ) {
    Do this
}
else {
    Do that
}

См. Использование тернарных операторов If / Else http://php.net/manual/en/language.operators.comparison.php.

3 голосов
/ 20 января 2010

Это троичная операция , которая не специфична для PHP или WordPress, она существует в большинстве языков.

(condition) ? true_case : false_case 

Таким образом, в этом случае значение $ page будет равно «по умолчанию», когда $ page чем-то похоже на false - в противном случае оно останется неизменным.

2 голосов
/ 20 января 2010

Это означает, что если $ page не имеет значения (или равно нулю), установите для него значение по умолчанию.

1 голос
/ 20 января 2010

Это означает, что если переменная $ page не пуста, тогда присвойте переменную $ page в последней строке этой переменной или установите для нее имя страницы по умолчанию.

Это называется условный оператор

1 голос
/ 20 января 2010

Более подробный синтаксис последней строки:

if ($page)
{
    $page = $page;
}
else
{
    $page = 'default';
}
0 голосов
/ 20 января 2010

Это так называемый условный оператор .Он работает как оператор if-else, поэтому

$page = $page ? $page : 'default';

делает то же самое, что и

if($page)
{
    $page = $page;
}
else
{
    $page = 'default';
}
...