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;
}