PHP-PHP中一个变量赋值NULL,与未定义的变量如何区分
<?php
$a = NULL;
// $b; //未定义
?>
如何判断$a $b是否定义
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
<?php
$a = NULL;
// $b; //未定义
?>
如何判断$a $b是否定义
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(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
is_null 应该判断一个就行了,如果未定义就用is_set, 如果定义了判断空empty.
单纯比较不太好区分 不过你可以通过下面两种方法来检查变量是否有定义
// 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) {
// 变量未定义
}