Что означает этот синтаксис (page = $ page? $ Page: 'default') в PHP?

Я новичок в 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 } 

См. « Использование / Недействительных троичных операторов» 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'; }