Забавно, что никто так и не понял вопроса.
В единственном экземпляре это будет банальный
тернарный оператор.
А в удвоенном - это ужас, летящий на крыльях ночи, поскольку в том же мануале сказано,
Замечание:
Рекомендуется избегать "нагромождения" тернарных выражений. Поведение PHP неочевидно при использовании нескольких тернарных операторов в одном выражении:
И в итоге этот код скорее всего работает не так, как хотел автор. Если переписать на обычные условия, то получится такой код
if (isset($product_info['meta_h1'])) {
if ($product_info['meta_h1']) {
$out = $product_info['meta_h1'];
} else {
$out = $product_info['name'];
}
} else {
$out = '';
}
Логики я здесь не вижу.
Более осмысленным вариантом для меня было бы, "если $product_info['meta_h1'] не существует или пуста, то выводить $product_info['name']". То есть, все свелось бы к простому единственному тернарному оператору
!empty($product_info['meta_h1']) ? $product_info['meta_h1'] : $product_info['name'];
На вопрос же "зачем" ответ простой: от лени и головотяпства. Есть такой период в жизни каждого пользователя похапе, когда кажется, что чем короче ты напишешь, тем круче выглядит твой код... а потом, когда начинаешь читать свое произведение, из глаз начинает идти кровь.