PHP的isset、empty和is_null函数用法有什么不同呢?
Admin 2022-10-13 群英技术资讯 1045 次浏览
关于“PHP的isset、empty和is_null函数用法有什么不同呢?”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。NULL:
当你在你的脚本中写下这样一行代码
$myvariable; //此处你想定义一个变量,但未赋值。会有Notice: Undefined variable
echo $myvariable + 3; //使用这个变量出现:Notice: Undefined variable: myvariable in
如果将其改写成:
$myvariable = NULL;
echo $myvariable + 3; //这样就不会有问题了
所以得出在你的脚本在使用一个变量时最好赋一个默认值,如果你不想,就可以将NULL赋给变量,表示这个变量已经定义但没有值,属于NULL类型。
is_null():
bool is_null ( mixed $ var ) (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是 FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:
$myvar = NULL;
var_dump(is_null($myvar)); // TRUE
$myvar1;
var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable
$num = 520;
unset($num);
var_dump(is_null($num)); //TRUE Notice: Undefined variable
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable
$myvar = 0; is_null($myvar); // FALSE
$myvar = FALSE; is_null($myvar); // FALSE
$myvar = ”; is_null($myvar); // FALSE
isset():
bool isset ( mixed $var [, mixed $… ] ),参数是一个变量
检测参数已设定,并且不是NULL。如果没有设置变量,变量未赋值,或变量被设为NULL,isset()函数就返回NULL。
正好和is_null()函数相反,is_null()为TRUE的情况在isset()中就为FALSE。有意思!
如果传递多个参数,将取交集。即所有参数全部符合 isset() 时才返回 TRUE。
似乎让人感觉有点困惑,来看一些例子:
$myvar = NULL; isset($myvar); // FALSE 当一个变量被赋值为NULL时,就表示这个变量没有值
$myvar = 0; isset($myvar); // TRUE
$myvar = FALSE; isset($myvar); // TRUE
$myvar = ”; isset($myvar); // TRUE
isset($some_undefined_var); // FALSE Undefined variable
可以看出isset()着重检测一个 变量是否设置和这个变量是否有具体的值,当变量满足这两种情况时isset()返回TRUE
defined():
bool defined ( string $name )
检测是否设置常量
empty():
bool empty ( mixed $var )
判读变量是否为空。
请见上面的类型比较表empty()那一列你就明白哪些情况是空的情形了。还有其他一些函数的参照。
来看一些例子:
$myvar = NULL; empty($myvar); // TRUE
$myvar = 0; empty($myvar); // TRUE
$myvar = FALSE; empty($myvar); // TRUE
$myvar = ”; empty($myvar); // TRUE
empty($some_undefined_var); // TRUE
empty()为TRUE的情况,若变量不存在,或者变量存在且其值为””、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE。
一般如!empty()的判断,就是变量存在,且值不为””、0、”0″、NULL、FALSE、array()以及只是单纯定义一个变量$var。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
如何定义数组?在PHP中创建数组主要有两种方式,下面就让我们来看看如何创建一个数组 (1)直接给每个元素赋值的方法创建数组。 格式为:$arrayname[key]...
这篇文章主要介绍了Laravel jwt 多表(多用户端)验证隔离的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
php中swoft框架配置环境:1、将swoft的官方项目在docker中运行起来,然后使用composer安装好它的依赖包。2、设置宿主机与容器共享文件,注意共享的前提是docker容器中的文件地址应该和宿主机对应的文件是一样的。
下面由phpstorm教程栏目给大家介绍phpstrom 插件卸载的方法,希望对需要的朋友有所帮助!
php中Suhosin的介绍:1、Suhosin是PHP程序的保护系统。设计初衷是为了保护服务器和用户,抵御PHP程序和PHP核心中已知或者未知的缺陷,可以抵御小攻击。2、Suhosin有两个独立的部分,使用时可以分开使用或者联合。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008