php - 检查值是否为 isset 和 null

标签 php null isset

我需要检查 value 是否定义为任何内容,包括 null。 isset 将 null 值视为未定义并返回 false。以以下为例:

$foo = null;

if(isset($foo)) // returns false
if(isset($bar)) // returns false
if(isset($foo) || is_null($foo)) // returns true
if(isset($bar) || is_null($bar)) // returns true, raises a notice

注意 $bar 是未定义的。

我需要找到一个满足以下条件的条件:

if(something($bar)) // returns false;
if(something($foo)) // returns true;

有什么想法吗?

最佳答案

IIRC,您可以使用 get_defined_vars()为此:

$foo = NULL;
$vars = get_defined_vars();
if (array_key_exists('bar', $vars)) {}; // Should evaluate to FALSE
if (array_key_exists('foo', $vars)) {}; // Should evaluate to TRUE

关于php - 检查值是否为 isset 和 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3803282/

相关文章:

php - 需要帮助为 UBUNTU 14.0 的 couchbase server 4.0.0 安装 C SDK 和 PHP SDK

php - number_format 仅当不为零时

Java:对象的默认值null更好

calloc() 和 NULL

php - Isset 基于多个值

php - PHP —未定义索引:

php - 如何解决用户打开无数标签页导致服务器泛滥的问题?

c# - 为什么 View 模型为空?

php - "isset construct"有快捷方式吗?

php - 如果selenium已经在运行,如何从shell中逃脱?