php里isset、empty、if区别以及0、‘’、null

2.76K 浏览开发笔记

php里isset、empty、if区别以及0、‘’、null

empty用法

bool empty ( mixed var)
如果 var 是非空或非零的值,则 empty() 返回 FALSE。
换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

isset()

isset -- 检测变量是否设置
描述
bool isset ( mixed var [, mixed var [, ...]])
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("0")并不等同于 PHP 的 NULL 常数。

注意:如果变量不存在(或者unset()释放一个变量后),isset()和empty()都不会报错;is_null(),is_numeric(),if会报错

is_numeric 检测变量是否为数字或数字字符串;
is_null正好是isset的反结果,我们可以把它看成是!isset,是isset的一个逆操作。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
用法:注意defined(""),如果没有双引号,则会警告:undefined constant website

if(defined("website")){     echo "true";}else{     echo "false";}

 

0、‘’、null之间相等关系

if('' == null && '' == 0 && null ==  0 && 0 =='0')echo 'if'; if('' == '0' || null == '0' ) echo 'if2';

结论:'' ,null , 0 ,'0'互相相等;'',null不等于'0'

0