«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2021/12/28 10:29:09  №2250319 1
Чому так?
$var = array(null);
var_dump(empty($var)); //false
var_dump(isset($var)); //true
Ответы: >>2250324 >>2250910 >>2251983
Аноним 2021/12/28 10:33:34  №2250324 2
Аноним 2021/12/28 21:12:36  №2250910 3
>>2250319

В программировании ты должен полагаться не на интуицию ("это значение выглядит пустым"), а на определения из документации (какие значения считаются пустыми).

Вот, что написано в мануале про empty: https://www.php.net/manual/ru/function.empty.php

> Возвращает false, если var существует и содержит непустое ... значение...

Соответственно, true возвращается, если переменная не существует либо она содержит "пустое" (falsey) значение.

Что такое "пустое значение"? Это описано тут: https://www.php.net/manual/ru/language.types.boolean.php#language.types.boolean.casting

> При преобразовании в bool, следующие значения рассматриваются как false:

> само значение boolean false
> integer 0 (ноль)
> float 0.0 (ноль) и -0.0 (минус ноль)
> пустая строка, и строка "0"
> массив без элементов
> особый тип NULL (включая неустановленные переменные)
> объекты SimpleXML, созданные из пустых элементов без атрибутов, то есть элементов, не имеющих ни дочерних элементов, ни атрибутов.

Твой массив [null] не подпадает под определение "пустого" значения, так как он непустой - в нем есть один элемент. Следовательно, empty возвращает false.

Что касается isset, то с ним еще проще: он вернет true, если переменная существует и она не равна null. Переменная существует, массив с одним элементом [null] не равен null, потому isset вернет true.
Аноним 2021/12/30 05:48:12  №2251983 4
>>2250319
Значением массива является null и по этому массив не пустой, а isset проверяет на наличие переменной.

>>2250530
>Можно к вам перекатиться?
Перекатывайся лучше в шарп, раст или ГО на худой конец.
1. На этих языках можно писать ещё что-то помимо сайтов.
2. Они типизированы и гораздо быстрее пыхи.
3. Будет больше понимания того, что пишешь, а не тупой говнокод сайтиков на фреймворках.
Пусть лучше жопа горит сильно сейчас, но от этих языков профита в разы больше чем от пэхапэ.

>>2250970
>У меня с ооп нет проблем
Тем более, шарп очень много перенял у жавы, да и писать на нём одно удовольствие.

>>2251771
>является одним из лучших примеров как надо делать документацию
Удвоил, сук попросту нет ничего похожего, чтобы коротко и по делу.