相关疑难解决方法(0)

如何避免isset()和empty()

我有几个较旧的应用程序,当在E_NOTICE错误级别上运行时会抛出大量"xyz未定义"和"未定义的偏移"消息,因为没有使用isset()和consorts 显式检查变量的存在.

我正在考虑通过它们来使它们与E_NOTICE兼容,因为关于缺失变量或偏移的通知可以是救生员,可能会获得一些微小的性能改进,并且它总体上更清洁.

但是,我不喜欢对我的代码造成数百isset() empty()array_key_exists()s的影响.它变得臃肿,变得不那么可读,没有在价值或意义上获得任何东西.

如何在没有过多变量检查的情况下构建代码,同时还兼容E_NOTICE?

php error-reporting

96
推荐指数
4
解决办法
2万
查看次数

是否有一种惯用的方法从PHP中的数组中获取可能未定义的键?

PHP人民,我已经厌倦了这样做

$value = isset($arr[$key]) ? $arr[$key] : null;
Run Code Online (Sandbox Code Playgroud)

或这个

$value = array_key_exists($key, $arr) ? $arr[$key] : null;
Run Code Online (Sandbox Code Playgroud)

不要没有人告诉我这样做

$arr   = array(1);
$key   = 5;
$value = $arr[$key];
// Notice: Undefined offset: 5
Run Code Online (Sandbox Code Playgroud)

我得了支气管炎.不是没有人有时间f'dat.


我想能做出一个功能......

function array_get(Array $arr, $key, $default=null) {
  return array_key_exists($key, $arr)
    ? $arr[$key]
    : $default
  ;
}
Run Code Online (Sandbox Code Playgroud)

但这是最好的(最惯用的)方式吗?

php arrays idioms

7
推荐指数
1
解决办法
254
查看次数

标签 统计

php ×2

arrays ×1

error-reporting ×1

idioms ×1