在PHP中,变量在定义以后不需要进行初始化,但是不推荐这么做,一般情况下最好是对变量进行显示初始化,即定义并赋值。
我们在编写代码的过程中,可能出于某些方面的考虑(如:引用了别人的代码,我们担心程序出现冲突等),我们会对某些变量进行判断,然后做后续处理。
在编写代码的过程中,我们经常会用到变量和条件判断。首先笔者先解释一下变量和条件判断这两个专业名词。
变量:在程序运行过程中允许被修改的量。
条件判断:判断给定信息是真是假的句子。
注:在PHP中,变量在定义以后不需要进行初始化,但是不推荐这么做,一般情况下最好是对变量进行显示初始化,即定义并赋值。
我们在编写代码的过程中,可能出于某些方面的考虑(如:引用了别人的代码,我们担心程序出现冲突等),我们会对某些变量进行判断,然后做后续处理。
这里就引出一个问题:我们如何进行变量的判断?
PHP为我们提供了诸多函数:isset()、empty()、is_null()、is_int()、is_float()、is_bool()、is_array()、is_string()、is_object()等。
既然是不同的函数,那么其中必然有差异。今天,笔者就详细剖析一下isset()、empty()、is_null()这三个函数之间的差异。
isset():检测变量是否被显式初始化并且值不为null
注:如果变量被赋值并且值不为null(null不区分大小写)则返回true,否则返回false。
特别提醒:isset()只能用于变量,因此传递任何其它参数都将造成解析错误。
empty(): 检查变量是否为空
注:''、'0'、0、null、false、array()、未赋值的变量以及没有任何属性的对象都将被认为是空的,如果变量为空,则返回true,否则返回false。
特别提醒:empty()只能检测变量,检测任何非变量的东西都将导致解析错误。
is_null():检测变量是否为null
注:NULL类型只有一个值,就是不区分大小写的常量null。如果变量为null,则返回true,否则返回false。
特别提醒:在下列情况下一个变量被认为是null
1、尚未被赋值;
2、被赋值为null;
3、被unset()了;
is_int():检测变量是否是整数
is_float():检测变量是否是浮点型
is_bool():检测变量是否是布尔型
is_array():检测变量是否是数组
is_string():检测变量是否是字符串
is_object():检测变量是否是一个对象
由于is_系列函数较多,笔者就不一一列出了,你可以自行查阅相关手册。
如果要判断一个值是否为null,虽然PHP中有很多方法可用,但是笔者认为最妥当的方法还是使用is_null()配合条件判断语句(if-esle)或三目运算。