可能重复:
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....";
}
}
?>
谢谢!
答案 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;
?>
执行此操作不会两次显示该类别。