如何寫這個沒有轉到:變量轉移到earier點而不轉到
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
要求:
我不允許更改訂單(CORE(echo $ a)和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代碼中的幾行時纔有幫助,但無法更改變量的值,以更改ALGORHYTM(取決於var值),從而生成隨機HTML代碼。
此外, 當我檢查了我的代碼,我明白了,我的代碼,甚至GOTO語句標籤,DOES NOT將改變$輸出1內容?怎麼做?唯一的辦法是重新緩存從他的開始$ output1。或者,也許我能以其他方式做到這一點?
這段代碼讓我非常傷心。 – 2009-12-26 21:39:32
我也是。我有點困惑,剛纔你似乎也問過很多相同的問題。不那麼酷。 – moritz 2009-12-26 21:46:05
非trully相同,相似,不一樣,另一個是全源公司。設計模式相關。這一個是在一個主題中指定的 - 無轉移的可變轉移。 – KestutisIT 2009-12-27 03:46:24