0

私はいくつかの調査を行いましたが、私の質問に対する正解は見つかりませんでした。

ループの前にカウントを行うのが良い方法ですか?

それを行う方が良いですか:

if(count(array) > 0){
    foreach(array as entry){

    }
}

また

foreach(array as entry){

}

私の見解では、配列が空の場合はループしないため、カウントは余分なステップです。

あなたはそれについてどう思いますか ?

4

3 に答える 3

4

配列に何もない場合、foreachループは0回ループします。先のカウントを確認する必要はありません。$ arrayの可能な値によっては、is_array()をテストする方がよいでしょう。これは、$ arrayが配列でない場合、foreachがエラーをスローするためです。

于 2013-03-26T18:03:55.313 に答える
1

簡単なテストを試してみましょう。

テスト1

$array = "string";
foreach ( $array as $entry ) {
}

出力

Warning: Invalid argument supplied for foreach()

テスト2

$array = "string";
if (count($array) > 0) {
    foreach ( $array as $entry ) {
    }
}

出力

Warning: Invalid argument supplied for foreach()

テスト3

$array = "string";
if (is_array($array) || $array instanceof Traversable) {
    foreach ( $array as $entry ) {
    }
}

出力

 No error

常に検証する必要はありませんが、値がわからない場合は、ループする前に値が有効かどうかを確認する必要があります。

于 2013-03-26T19:27:27.723 に答える
0

あなたが一緒に行くなら、count()それはするのと似ていis_array()ます。配列でない場合、Foreachはエラーを出します。

より良い方法、imoはif(!empty($array)){

于 2013-03-26T18:04:26.013 に答える