php中有两个常见的异常, Undefined indexUndefined 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;
}

引申阅读

php中isset, empty, is_null的区别(www.hedaoshe.com)

参考资料

PHP 中提示undefined index如何解决(多种方法)

THE END
开启精彩搜索

历史搜索

用户名或邮箱
密码
用户名
密码
重复密码
邮箱
找回密码
注册 登录
邮箱
邮箱验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新