我有像这样的简单PHP代码
$revenue = $this->dailyCounts['revenue'][$date]['net_revenue'] + (!empty($activity[$date]) ? $activity[$date] : 0) * 1000;
但是在$activity
变量为NULL
时,即使我检查为空,它始终会显示警告。我在循环内运行它,当undefined index
具有空值时,它始终显示$activity
。
答案 0 :(得分:1)
在这种情况下,使用isset而不是empty将无法解决任何问题。
如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。
http://php.net/manual/en/function.empty.php
我猜通知来自$ this-> dailyCounts ['revenue'] [$ date] ['net_revenue']
答案 1 :(得分:0)
使用isset()
代替empty()
,
(!isset($activity[$date])
empty()
将直接检查该值,但isset()
会查看索引是否存在。
答案 2 :(得分:0)
试试这个:
$revenue = $this->dailyCounts['revenue'][$date]['net_revenue'] + ((isset($activity[$date]) && !empty($activity[$date])) ? $activity[$date] : 0) * 1000;