0

我有一个复杂的场景,我需要运行一个 for 循环,它应该一直运行,不依赖于变量,但是如果变量确实存在(意味着它不等于''),那么我需要检查另一个。如果这两个条件都为真,那么它应该继续。令人困惑,但很难解释让我尝试向您展示:

$subcat 在 for 循环之前的其他地方定义

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

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

所以基本上。我需要这个 for 循环来每次执行 XYZ。但是如果 Subcat 存在,那么它只需要显示 subcat 与 subcategory 相同的结果。

  1. 每次都跑
  2. 如果 subcat 不存在,则显示每个条目。
  3. 如果 subcat 确实存在,请检查 subcat == subcategory
  4. 如果 subcat 确实 == subcategory,则显示它们的子类别与 sub cat 相同的每个条目。

怎么做这样的事情?

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 是一种语言结构而不是函数,并且因为如果语句的第一个条件为真,则第二个条件被忽略,如果$subcat从未声明过,上面的代码不会引发错误,而不是原始代码。

于 2012-10-04T01:12:56.570 回答
0

使用 isset() 测试变量是否存在: php man isset

于 2012-10-04T00:41:30.213 回答