@Vladimir-Hetman

Голая переменная в условии if?

До этoго я видел мнoго условий в if, где просто пишется переменная и все.
Я не понимал этого и не хотел понимать, зачем это делается.

Нo теперь, мне нужно это понять.
В дaнном случае в услoвии if просто стоит супермассив $_FILES без нечего.

Это все равно, что:
if($_FILES) = isset($_FILES)
Или я чего-то не понимаю?

if($_FILES)  // это равносильно isset($_FILES) ??
{
    foreach ($_FILES["uploads"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["uploads"]["tmp_name"][$key];
            $name = $_FILES["uploads"]["name"][$key];
            move_uploaded_file($tmp_name, "$name");
        }
    }
    echo "Файлы загружены";
}
  • Вопрос задан
  • 118 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED

пойди и гадай, что условие будет работать, если в массиве элементов больше ноля.

Почему об этом не сказано в доках?

Сказано же
https://www.php.net/manual/en/language.types.boole...

И такие-же таблицы есть для js, и большинства других языков.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Если коротко и прям совсем для несведущих:
1) все что внутри иф всегда будет приводиться к булевой переменной. Как приводится к булеан тот или иной тип переменных - описано в доке.
2) В "боевом" коде такие конструкции if($_FILES) существовать не должны, все что попадает внутрь условия должно быть приведено к булеан, чтобы разночтений и вопросов, подобных этому, не возникало. В данном случае, в зависимости от назначения кода, можно было использовать как isset() так и !empty().
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы