如何进行变量的判断

摘要

在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)或三目运算。

shaw

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: