Реализуйте функцию fizzBuzz(), которая выводит на экран числа в диапазоне от $begin до $end. При этом: Если число делится без остатка на 3, то вместо него выводится слово Fizz Если число делится без остатка на 5, то вместо него выводится слово Buzz Если число делится без остатка и на 3, и на 5, то вместо числа выводится слово FizzBuzz В остальных случаях выводится само число Подскажите пожалуйста я задачу решил вот так: PHP: function fizzBuzz($begin, $end) { if ($begin > $end) { echo ''; } for ($i = $begin; $i <= $end; $i++) { if ($i % 3 === 0 && $i % 5 !== 0) { echo 'Fizz '; } elseif ($i % 5 === 0 && $i % 3 !== 0) { echo 'Buzz '; } elseif ($i % 5 === 0 && $i % 3 === 0) { echo 'FizzBuzz '; } else { echo "{$i} "; } } } Но подсказали вот такое решение: Код (Text): function fizzBuzz($begin, $end) { for ($i = $begin; $i <= $end; $i++) { $hasFizz = $i % 3 === 0; $hasBuzz = $i % 5 === 0; $fizzPart = $hasFizz ? 'Fizz' : ''; $buzzPart = $hasBuzz ? 'Buzz' : ''; print_r($hasFizz || $hasBuzz ? "{$fizzPart}{$buzzPart}" : $i); print_r(" "); } } $fizzPart = $hasFizz ? 'Fizz' : ''; $buzzPart = $hasBuzz ? 'Buzz' : ''; Зачем "?" в этих двух строчках? Что он делает?
Это тернарный оператор. Он возвращает либо значение после знака вопроса(если условие true), либо значение после знака : (если условие false)