Что означает этот синтаксис (page = $page?$страница:«по умолчанию») в PHP означает?

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

Вопрос

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

$page = $_SERVER['REQUEST_URI'];
$page = str_replace("/","",$page);
$page = str_replace(".php","",$page);
$page = $page ? $page : 'default'
Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

if ($page)
    $page = $page;
else
    $page = 'default';

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

(condition) ? true_case : false_case 

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

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

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

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

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

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

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

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

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

if($page)
{
    $page = $page;
}
else
{
    $page = 'default';
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top