如何在没有 goto 的情况下编写:
ob_start();
$a = 0;
echo "START of LEFT<br />";
begin:
if($a > 0) {
echo "CONTENT LEFT: $a<BR />";
<VERY DIFFICULT ALGORHITM>
goto end;
}
<... ALL THE REST CODE OF LEFT ...>
echo "END of LEFT<br /><br />";
$output1 = ob_get_contents();
ob_end_clean();
ob_start();
echo "START of CENTER<br />";
$a = 5; goto begin;
end:
<... ALL THE REST CODE OF CENTER ...>
echo "END of CENTER<br />";
$output2 = ob_get_contents();
ob_end_clean();
// print it
echo $output1.$output2;
要获得此回声:
START of LEFT
CONTENT LEFT: 5
END of LEFT
START of CENTER
END of CENTER
要求:
1.我不能更改顺序(CORE( echo $a ), and PLUGIN( $a=5 )):
ob_start();
$a = 0;
<ANY CODE>
echo $a;
$output1 = ob_get_contents();
ob_end_clean();
ob_start();
<ANY CODE>
$a = rand(0,10);
$output2 = ob_get_contents();
ob_end_clean();
2.必须通过 ob_get_contents() 生成输出;
但是我可以在某些地方写任何代码。
// 求解 ob_get_contents(); 仅在想要替换输出 HTML 代码中的几行但无法更改变量的值时才有帮助,以更改生成随机 HTML 代码的 ALGORHYTM(取决于 var 值)。
另外,当我检查我的代码时,我明白,我的代码,即使使用 GOTO 标签语句,也不会更改 $output1 内容?怎么做?唯一的方法是从他的开始重新缓存 $output1。或者也许我可以通过其他方式做到这一点?