PHP如何区分未定义,null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何区分未定义,null相关的知识,希望对你有一定的参考价值。

今天遇到群里一个人提的问题,isset无法区分未定义和null怎么办?

下面是代码。

<?php
$b = null;
$c = ‘‘;
$arr = get_defined_vars();

if(!isset($a) && !array_key_exists(‘a‘, $arr)){
    echo ‘变量未定义‘;
}else if($a === null){
    echo ‘变量已定义,但变量为空‘;
}else{
    echo ‘变量已定义且变量不为空‘;
}

echo ‘<br />‘;

if(!isset($b) && !array_key_exists(‘b‘, $arr)){
    echo ‘变量未定义‘;
}else if($b === null){
    echo ‘变量已定义,但变量为空‘;
}else{
    echo ‘变量已定义且变量不为空‘;
}

echo ‘<br />‘;

if(!isset($c) && !array_key_exists(‘c‘, $arr)){
    echo ‘变量未定义‘;
}else if($c === null){
    echo ‘变量已定义,但变量为空‘;
}else{
    echo ‘变量已定义且变量不为空‘;
}

以上是关于PHP如何区分未定义,null的主要内容,如果未能解决你的问题,请参考以下文章

如何区分 Spring Rest Controller 中部分更新的 null 值和未提供的值

如何区分未定义的数组元素和空槽?

如何在 PHP 中将变量重置为 NULL?

在ASP.NET Core中实现“JSON Merge Patch” - 最好的方法是区分null和未定义的属性

如何在php中修复“未捕获的错误:在null上调用成员函数insertOne()”

如果使用 php (laravel) 未定义数组元素,则将 null 插入数据库