php異常中undefined index和Undefined variable的區(qū)別和解決方法

php中有兩個(gè)常見的異常, Undefined indexUndefined variable, 今天我們就來了解它們的區(qū)別和異常解決方案.

php函數(shù)中值傳遞的方式

在php中對于簡單數(shù)據(jù)類型, 也就是number, boolean, string, 它們作為函數(shù)參數(shù)傳值時(shí), 默認(rèn)是使用值傳遞

Undefined variable異常的原因

Undefined variable異常就是說變量未定義, 當(dāng)我們引用一個(gè)未定義的變量時(shí)就會報(bào)該異常.

Undefined variable異常的解決方法

解決方法就是在引用該變量之前使用isset函數(shù)進(jìn)行判斷, 下面是該函數(shù)的封裝

<?phpfunction getSafeValue(&$var,$default=null){ return isset($var) ? $var : $default;}

上面函數(shù)有一個(gè)點(diǎn)要注意, 就是必須使用引用傳遞, 也就是&$var, 因?yàn)橥ㄟ^值傳遞會復(fù)制一次變量, 假如該變量本身就不存在, 則又會報(bào)Undefined variable異常.

Undefined index異常的原因

Undefined index異常: 當(dāng)我們使用了數(shù)組中不存在的key時(shí), 就會報(bào)該異常.

Undefined index異常的解決方案

其實(shí)和Undefined variable解決方案差不多, 也是在引用前進(jìn)行一次判斷, 下面時(shí)該函數(shù)的封裝.

<?phpfunction getSafeArrValue(&$arr,$key,$default=null){ return isset($arr[$key]) ? $arr[$key] : $default;}

引申閱讀

php中函數(shù)參數(shù)的引用傳遞和值傳遞
php中isset, empty, is_null的區(qū)別

文章首發(fā)于: https://hedaoshe.com/311.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容