php: '0' как строка с пустым () - PullRequest
22 голосов
/ 10 ноября 2010

Я хочу, чтобы 0 рассматривался как целое число, а '0' - как строка, но empty () рассматривает '0' как строку в следующем примере,

$var = '0';

// Evaluates to true because $var is empty
if (empty($var)) {
    echo '$var is empty';
}

Как я могу 'сделать' empty (), чтобы принять '0 в качестве строк?

спасибо.

Ответы [ 13 ]

0 голосов
/ 27 января 2017

Вы не можете, потому что для PHP не имеет значения integer, string, float, null.

Потому что это круто :) 1003 *

Вы должны проверить характерные особенности вашей переменной is_numeric, isset, ===, strlen и т. Д.

Например:

if (strlen(@$var)==0) {
    echo @$var . ' is empty';
}

или

if (@$var==="" || !isset($var)) {
    echo @$var . ' is empty';
}

или другие примеры:)

спасибо за чтение.

0 голосов
/ 01 марта 2014

if ( (is_array($var) && empty($var)) || strlen($var) === 0 ) { echo $var . ' is empty'; }

0 голосов
/ 10 ноября 2010

В этом случае не используйте empty, вместо него используйте isset (). Это также позволит 0 как целое число.

$var = '0';
if (!isset($var)) {
    print '$var is not set';
}

$var = 0;
if (!isset($var)) {
    print '$var is not set';
}

Никто не должен ничего печатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...