在函数中使用下面的代码时($floor
&$lift
已传入,但我已在此处添加它们以进行演示),我得到Notice: Undefined offset: 20
了最后一条return
语句。
最后一个return
是在这个例子中使用的平均值,但为什么我得到Notice: Undefined offset: 20
? 如果我没有记错(我显然是),该array_key_exists()
功能应该防止这种情况发生吗?我也尝试过,但isset()
没有成功。
$floor = 20;
$lift = false;
$moving = array(
"no_lift" => array(
1 => 0,
2 => 13,
3 => 17,
4 => 20
),
"lift" => array(
1 => 0,
2 => 10,
3 => 10,
4 => 20
)
);
switch ( $lift ) {
case true:
return ( isset( $moving["lift"][ $floor ] ) ? $moving["lift"][ $floor ] : $moving["lift"][ end( $moving["lift"] ) ] );
break;
case false:
return ( array_key_exists( $floor, $moving["no_lift"] ) ? $moving["no_lift"][ $floor ] : $moving["no_lift"][ end( $moving["no_lift"] ) ] );
break;
}