0

forループを実行する必要がある複雑なシナリオがあり、変数に依存せずに常に実行する必要がありますが、変数が存在する場合(「等しくない」ことを意味します)、別のものを確認する必要があります。両方の条件が真の場合、続行する必要があります。紛らわしいですが、説明するのは難しいので、お見せしましょう。

$subcat は for ループの前の別の場所で定義されています

for($i=0; $i<sizeof($news_posts); ++$i)
    $subcategory = $news_posts[$i]['subcategory'];

    if( $subcat != '' && $subcat == $subcategory){
    CONSEQUENT XYZ.

だから基本的に。XYZ EVERYTIME を実行するには、この for ループが必要です。ただし、Subcat が存在する場合は、subcat が subcategory と同じ結果のみを表示する必要があります。

  1. 毎回実行
  2. subcat が存在しない場合は、すべてのエントリを表示します。
  3. subcat DOES が存在する場合は、subcat == サブカテゴリかどうかを確認します
  4. サブカテゴリが == サブカテゴリの場合、サブカテゴリがサブカテゴリと同じであるすべてのエントリを表示します。

どうやってこのようなことをしますか?

4

2 に答える 2

0
for($i = 0; $i < sizeof($news_posts); ++$i) {
    $subcategory = $news_posts[$i]['subcategory'];

    //Show entry only if subcat is not set OR if it is set and matches the subcategory
    if(!isset($subcat) || ($subcat == $subcategory)) {
        //Do show entry stuff
    }
}

一目瞭然ですが、これはあなたが探していると思われる条件です。が設定されている場合$subcat、サブカテゴリに一致する反復のみが表示エントリ コードを実行します。それ以外の場合は、すべての反復がそれを実行します。

isset は関数ではなく言語構造であるため、ステートメントの最初の条件が true の場合は 2 番目の条件が無視されるため、$subcatが宣言されていない場合は、元のコードとは異なり、上記のコードはエラーを発生させません。

于 2012-10-04T01:12:56.570 に答える
0

isset() を使用して変数の存在をテストします: php man isset

于 2012-10-04T00:41:30.213 に答える