2013-11-01 12 views
0

我想更改先前調用的變量的值,但應該在之後更改它的值。喜歡在這個exapmle:PHP - 更改緩衝區中變量的值

<img src="<?php echo $src; ?>" /> 
$src = 'some_src.jpg'; 

也許某種緩衝或什麼?這應該這樣做,因爲我試圖做一種模板引擎:

$this->showHeader(); 
$this->showBody(); 

但身體是在另一個文件。在這個文件中,我會打電話:

$this->header->setScript('somescript.js'); 

而這應該改變頭中的變量。但是我不能在showHeader()之前調用showBody()函數。對不起我的英語不好。 :(

+1

這是違反因果關係。該變量在第一條語句執行時被替換,它不是稍後被填充的模板。 – Barmar

+0

爲什麼你需要在聲明之前調用一個變量? – Gavin

回答

0

你不能聲明一個變量之後您調用它。你會想看看比如增加它的功能屬性或呼應之前正確設置它的一些方法,以不同的方式寫的。

0

我我找到了這樣做的方法緩衝是完成我的任務的方式

我不能,t呼應頭部之前的頁面主體,但我不得不在頭部之前調用body來收集可能的變量變化。已將身體內容放入緩衝區:

ob_start(); 
$this->showBody(); 
$content = ob_get_clean(); 

現在我已經收集了變量值,我可以使用它們:

$this->showHeader(); 
echo $content; 

很簡單。