関数で以下のコードを使用すると ( $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;
}