如何使PHP代码只运行一次

时间:2011-07-19 13:34:24

标签: php html wordpress

  

可能重复:
  How can I execute a block of code exactly once in PHP?

我有一个代码,它基本上检查分配给帖子的当前类别,并根据它检索代码。 如果有超过1个类别分配给帖子,它会将两个代码或相同的两个类别呈现两次。
我想知道是否有一个选项可以使代码只工作一次。

<?php 
foreach((get_the_category()) as $category){ 
  if($category->cat_ID == '4'){ 
    echo "....TEXT...."; 
  } else { 
    echo "....TEXT2....";
  }
}
?>

谢谢!

4 个答案:

答案 0 :(得分:3)

$first = true;    
foreach((get_the_category()) as $category) { 
        if($category->cat_ID == '4') { 
           echo "....TEXT....";
           $first = false;
        } else { 
           echo "....TEXT2....";}
           $first = false;
        }

        if(!$first) break;
    }

答案 1 :(得分:2)

试试这个:

<?php 
foreach((get_the_category()) as $category){ 
  if($category->cat_ID == '4'){ 
    echo "....TEXT...."; 
  } else { 
    echo "....TEXT2....";
  }
  break;
}

?>

无论条件如何,Break都用于退出循环。有关手册,请参阅this文章。

答案 2 :(得分:1)

将一个变量添加到循环内部,将变量标记为run。然后在运行之前检查该变量:

<?php 
   if($first_run) {
      foreach((get_the_category()) as $category){ 
         if($category->cat_ID == '4'){ 
               echo "....TEXT...."; 
         } 
         else { 
               echo "....TEXT2....";
         }
        }
      $first_run = TRUE;
      }
        ?>

只有从函数调用代码或者在同一个脚本中多次包含代码时,才能执行此操作。如果您希望每个会话只运行一次(跨多个页面),则应使用SESSION变量。

答案 3 :(得分:0)

补充我上面的评论。

<?php 
      foreach((get_the_category()) as $category){ 
         if($category->cat_ID == '4'){ 
               $varCateg = "....TEXT...."; 
         } 
         else { 
               $varCateg = "....TEXT...."; 
         }
        }

// diplay varCateg here
echo $varCateg; 

?>

执行此操作不会两次显示该类别。