php中有兩個常見的異常, Undefined index
和Undefined variable
, 今天我們就來了解它們的區(qū)別和異常解決方案.
php函數(shù)中值傳遞的方式
在php中對于簡單數(shù)據(jù)類型, 也就是number, boolean, string, 它們作為函數(shù)參數(shù)傳值時, 默認是使用值傳遞
Undefined variable異常的原因
Undefined variable異常就是說變量未定義, 當(dāng)我們引用一個未定義的變量時就會報該異常.
Undefined variable異常的解決方法
解決方法就是在引用該變量之前使用isset函數(shù)進行判斷, 下面是該函數(shù)的封裝
<?php
function getSafeValue(&$var,$default=null){
return isset($var) ? $var : $default;
}
上面函數(shù)有一個點要注意, 就是必須使用引用傳遞, 也就是&$var
, 因為通過值傳遞會復(fù)制一次變量, 假如該變量本身就不存在, 則又會報Undefined variable異常.
Undefined index異常的原因
Undefined index異常: 當(dāng)我們使用了數(shù)組中不存在的key時, 就會報該異常.
Undefined index異常的解決方案
其實和Undefined variable解決方案差不多, 也是在引用前進行一次判斷, 下面時該函數(shù)的封裝.
<?php
function getSafeArrValue(&$arr,$key,$default=null){
return isset($arr[$key]) ? $arr[$key] : $default;
}