を確認してください)(array_key_existsにもかかわらず、オフセット、私は最後のreturn
文でNotice: Undefined offset: 20
を取得しています($floor
& $lift
が渡されているが、私はデモのためにここではそれらを追加しました)。未定義関数に以下のコードを使用している場合
最後の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;
}
'エンド($ [ "no_liftを"]移動を)' '20'になります。存在しない –
キーで配列にアクセスしようとしていますが、実際には値を使用しています! – Stuart
array_key_existsを使用して値を検索しようとしている可能性があります。代わりにarray_searchを使用する必要があります。 –