任何变量在进行累加、直接显示或存储前必需进行初使化,例如:
$number = 0; //数值型初始化
$string = ‘’; //字符串初始化
$array = array(); //数组初始化
判断一个无法确定(不知道是否已被赋值)的变量时,可用empty()或isset(),而不要直接使用if($switch)的形式,除非你确切的知道此变量一定已经被初始化并赋值。
empty()和isset()的区别为:
bool empty(mixed var)
如果 var 是非空或非零的值,则 empty() 返回
FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var;
以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
bool isset(mixed var[, mixed var[, ...]])
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL
的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
判断一个变量是否为数组,请使用is_array(),这种判断尤其适用于对数组进行遍历的操作,例如foreach(),因为如果不事先判断,foreach()会对非数组类型的变量报错;
判断一个数组元素是否存在,可使用isset($array[‘key’]),也可使用empty(),两者异同见上。