подскажите что происходит в этой строке кода return $y ? $w + s($h - 1, $w, $y - 1, $w - $x - 1) : $x;
подскажите пожалуйста что делает эта строка кода
return $y ? $w + s($h - 1, $w, $y - 1, $w - $x - 1) : $x;
где условие в этом тернарном операторе? $y = $w - $x - 1 (см.ссылку) я думал тут должно быть логическое условие... вот этот момент я не понимаю
тут в комментариях код целиком https://ru.stackoverflow.com/a/450464/372818
Ответы (2 шт):
Автор решения: Dmitry
→ Ссылка
( ? : ) – сокращенная форма условия if-else. Приведённый код аналогичен такому:
if ($y==true) {
return $w + s($h - 1, $w, $y - 1, $w - $x - 1);
} else {
return $x;
}
Автор решения: Alpha
→ Ссылка
Этот ответ не является ответом на вопрос, но является ответом на вопрос в комментарии (Так как в комментарии будет не читабельно) как y может быть true если y число:
var_dump(1 == true) . PHP_EOL;
var_dump('string' == true) . PHP_EOL;
var_dump('false' == true) . PHP_EOL;
var_dump('' == true) . PHP_EOL;
var_dump(0 == true) . PHP_EOL;
var_dump(false == true) . PHP_EOL;
var_dump(null == true) . PHP_EOL;
Результатом будет:
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)