PHP: что должна освободить альтернатива (), где строку “0” не рассматривают как пустую? [дубликат]

Это, кажется, не поддерживается (или даже не обсуждалось в списке рассылки Git ). команда дважды, один раз включая «/» для получения всего пути к папкам, один раз исключая «/» только для получения файлов)

27
задан Community 23 May 2017 в 12:26
поделиться

7 ответов

Ответ на этот вопрос заключается в том, что невозможно сократить то, что у меня уже есть.

Подавление уведомлений или предупреждений - это не то, что я хочу делать, поэтому мне всегда нужно чтобы проверить, пусто () или isset () перед проверкой значения, и вы не можете проверить, пусто ли что-то () или isset () внутри функции.

1
ответ дан 28 November 2019 в 05:19
поделиться
if(isset($var) && ($var === '0' || !empty($var)))
{
}
3
ответ дан Bart S. 28 November 2019 в 05:19
поделиться
if ((isset($var) && $var === "0") || !empty($var))
{

}

This way you will enter the if-construct if the variable is set AND is "0", OR the variable is set AND not = null ("0",null,false)

3
ответ дан SvenFinke 28 November 2019 в 05:19
поделиться
function isempty(&$var) {
    return empty($var) || $var === '0';
}

Ключ - это оператор & , который передает переменную по ссылке , создавая его, если он не существует.

9
ответ дан moo 28 November 2019 в 05:19
поделиться
function Void($var)
{
    if (empty($var) === true)
    {
        if (($var === 0) || ($var === '0'))
        {
            return false;
        }

        return true;
    }

    return false;
}
0
ответ дан 28 November 2019 в 05:19
поделиться

Это должно делать то, что вы хотите:

function notempty($var) {
    return ($var==="0"||$var);
}

Редактировать: я думаю, таблицы работают только в предварительном просмотре, а не в реальных ответах. Поэтому, пожалуйста, обратитесь к таблицам сравнения типов PHP для получения дополнительной информации.

notempty("")       : false
notempty(null)     : false
notempty(undefined): false
notempty(array())  : false
notempty(false)    : false
notempty(true)     : true
notempty(1)        : true
notempty(0)        : false
notempty(-1)       : true
notempty("1")      : true
notempty("0")      : true
notempty("php")    : true

По сути, notempty () - это то же самое, что! Empty () для всех значений, кроме «0», для которых он возвращает правда .


Редактировать: Если вы используете error_reporting (E_ALL) , вы не сможете передавать неопределенную переменную в пользовательские функции по значению. И, как отмечает Меркатор, вы должны всегда использовать E_ALL , чтобы соответствовать лучшим практикам. Эта ссылка (комментарий № 11), которую он предоставляет, обсуждает, почему вы не должны использовать какую-либо форму подавления ошибок в целях производительности и удобства сопровождения / отладки.

См. Ответ orlandu63 о том, как передавать аргументы в пользовательскую функцию по ссылке .

28
ответ дан 28 November 2019 в 05:19
поделиться

Если ($ var! = Null)

0
ответ дан 28 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

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