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