Что означает этот синтаксис (page = $page?$страница:«по умолчанию») в PHP означает?
-
21-09-2019 - |
Вопрос
Я новичок в 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';
}