PHP-PHP中一个变量赋值NULL,与未定义的变量如何区分

需求定制 需求定制 主题:1050 回复:2283

PHP-PHP中一个变量赋值NULL,与未定义的变量如何区分

瑾兮 发布于 2016-11-22 字数 96 浏览 1072 回复 3

<?php
$a = NULL;
// $b; //未定义
?>
如何判断$a $b是否定义

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(3

甜柠檬 2017-06-24 3 楼

isset($a) --- true
isset($b) --- false

p.s. 这个果然是不对的。

$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

偏爱自由 2017-05-24 2 楼

is_null 应该判断一个就行了,如果未定义就用is_set, 如果定义了判断空empty.

灵芸 2017-03-19 1 楼

单纯比较不太好区分 不过你可以通过下面两种方法来检查变量是否有定义

// 1
array_key_exists('var', $GLOBALS);

// 2
error_reporting(E_ALL);

function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");

try {
    if (null === $var) {
        // 变量值为null
    }
} catch (ErrorException$e) {
    // 变量未定义
}