php中有两个常见的异常, Undefined index
和Undefined variable
, 今天我们就来了解它们的区别和异常解决方案.
php函数中值传递的方式
在php中对于简单数据类型, 也就是number, boolean, string, 它们作为函数参数传值时, 默认是使用值传递
Undefined variable异常的原因
Undefined variable异常就是说变量未定义, 当我们引用一个未定义的变量时就会报该异常.
Undefined variable异常的解决方法
解决方法就是在引用该变量之前使用isset函数进行判断, 下面是该函数的封装
<?php
function getSafeValue(&$var,$default=null){
return isset($var) ? $var : $default;
}
上面函数有一个点要注意, 就是必须使用引用传递, 也就是&$var
, 因为通过值传递会复制一次变量, 假如该变量本身就不存在, 则又会报Undefined variable异常.
Undefined index异常的原因
Undefined index异常: 当我们使用了数组中不存在的key时, 就会报该异常.
Undefined index异常的解决方案
其实和Undefined variable解决方案差不多, 也是在引用前进行一次判断, 下面时该函数的封装.
<?php
function getSafeArrValue(&$arr,$key,$default=null){
return isset($arr[$key]) ? $arr[$key] : $default;
}