Это то, что известно как троичный .
Однако из-за стиля кода (отсутствие паренов) немного сложнее увидеть, что на самом деле происходит.
$debug_mode = 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' );
Я предпочитаю обернуть условие в параны, чтобы сделать его немного более очевидным:
$debug_mode = ( 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' ) );
Что теперь выглядит более ясно как то, что это - назначение к переменной $debug_mode
того, является ли параметр woocommerce_shipping_debug_mode
равным ===
к yes
(который вернет либо TRUE
, либо FALSE
.
"Длинная рука"что бы это выглядело так:
$debug_mode = ( 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' ) ) ? TRUE : FALSE;
Но, так как условие возвращает TRUE
или FALSE
, часть ? TRUE : FALSE
является избыточной.
Для явно ответит на ваш второй вопрос: «зачем кому-то использовать это словоблудие», - они просто получают значение параметра - они написали его так, потому что это краткое .прекрасный пример того, почему мы должны писать код для людей , а не только для машин:)